Updated deploy script, docker-compose, dockerfile, and many dependency updates.
This commit is contained in:
parent
0fe6cea68d
commit
82692c5bf2
@ -1,8 +1,8 @@
|
||||
FROM node:12-alpine
|
||||
FROM node:alpine
|
||||
|
||||
RUN apk update && \
|
||||
apk add --no-cache bash
|
||||
|
||||
RUN npm install
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
RUN npm install -g create-next-app
|
||||
|
42
deploy.sh
42
deploy.sh
@ -6,28 +6,28 @@ APP_FOLDER=info
|
||||
CONTAINER_NAME=werefox-dev
|
||||
|
||||
MODE=$1
|
||||
x=$(sudo docker container ls | grep next-js | wc -l)
|
||||
if [ $x -eq 1 ]; then
|
||||
sudo MODE=$MODE docker-compose rm -sf
|
||||
fi
|
||||
x=$(APP_FOLDER=$APP_FOLDER MODE=$MODE docker compose ps | grep $CONTAINER_NAME | wc -l)
|
||||
|
||||
sudo MODE=$MODE docker-compose build
|
||||
sudo MODE=$MODE docker-compose run $CONTAINER_NAME bash -c "cd $APP_FOLDER && npm install --silent"
|
||||
|
||||
if [ ! -d "./src/$APP_FOLDER" ]; then
|
||||
sudo MODE=$MODE docker-compose run $CONTAINER_NAME npx create-next-app $APP_FOLDER
|
||||
sudo MODE=$MODE docker-compose run $CONTAINER_NAME bash -c "cd $APP_FOLDER && npx tailwindcss init -p"
|
||||
sudo chown -R $USER:$USER ./src
|
||||
fi
|
||||
|
||||
sudo MODE=$MODE docker-compose run $CONTAINER_NAME bash -c "cd $APP_FOLDER && npx next telemetry disable"
|
||||
|
||||
if [ $MODE == "dev" ] || [ $MODE == "start" ]; then
|
||||
sudo MODE=$MODE docker-compose up --build --force-recreate --remove-orphans -d
|
||||
sudo MODE=$MODE docker-compose logs -f
|
||||
elif [ $MODE == "build" ]; then
|
||||
sudo MODE=$MODE docker-compose run $CONTAINER_NAME bash -c "cd $APP_FOLDER && npm run build"
|
||||
else
|
||||
if [ "$MODE" == "" ]; then
|
||||
echo "Please use 'dev', 'build', or 'start' as an argument."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $x -eq 1 ]; then
|
||||
APP_FOLDER=$APP_FOLDER MODE=$MODE docker compose rm -sf
|
||||
fi
|
||||
|
||||
if [ ! -d "$(pwd)/src/$APP_FOLDER" ]; then
|
||||
APP_FOLDER=$APP_FOLDER MODE=$MODE docker compose run $CONTAINER_NAME sh -c "npm install --silent create-next-app && \
|
||||
npx create-next-app /usr/src/app/$APP_FOLDER --ts --eslint && \
|
||||
cd $APP_FOLDER && npm install tailwindcss autoprefixer && npx tailwindcss init -p && \
|
||||
cd /usr/src/app && rm -rf node_modules package.json package-lock.json"
|
||||
fi
|
||||
|
||||
APP_FOLDER=$APP_FOLDER MODE=$MODE docker compose run $CONTAINER_NAME sh -c "cd $APP_FOLDER && npm install --silent"
|
||||
APP_FOLDER=$APP_FOLDER MODE=$MODE docker compose run $CONTAINER_NAME sh -c "cd $APP_FOLDER && npx next telemetry disable"
|
||||
APP_FOLDER=$APP_FOLDER MODE=$MODE docker compose up -d
|
||||
|
||||
if [ "$MODE" == "dev" ] || [ "$MODE" == "start" ]; then
|
||||
APP_FOLDER=$APP_FOLDER MODE=$MODE docker compose logs -f
|
||||
fi
|
@ -3,11 +3,11 @@ version: "3"
|
||||
|
||||
services:
|
||||
"werefox-dev":
|
||||
image: next-js:latest
|
||||
container_name: werefox-dev
|
||||
build: .
|
||||
image: node:alpine
|
||||
volumes:
|
||||
- ./src:/usr/src/app/
|
||||
ports:
|
||||
- "3444:3444"
|
||||
command: bash -c "cd info && npm run $MODE"
|
||||
user: "1000:1000"
|
||||
working_dir: "/usr/src/app"
|
||||
command: 'sh -c "cd $APP_FOLDER && npm run $MODE"'
|
||||
|
@ -4,18 +4,16 @@ import Image from "next/image";
|
||||
export default function ContactsLink({ src, alt, url, description, url_text }) {
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a target="_blank">
|
||||
<div className="p-2 md:text-lg sm:text-md text-xs text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
<span className="animate-bounce relative inline-block w-6 h-6 align-middle">
|
||||
<Image src={src} layout="fill" objectFit="contain" alt={alt} />
|
||||
</span>{" "}
|
||||
{description}{" "}
|
||||
<div className="animate-wiggle inline-flex" target="_blank">
|
||||
{url_text}
|
||||
</div>
|
||||
<Link href={url} target="_blank">
|
||||
<div className="p-2 md:text-lg sm:text-md text-xs text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
<span className="animate-bounce relative inline-block w-6 h-6 align-middle">
|
||||
<Image src={src} layout="fill" objectFit="contain" alt={alt} />
|
||||
</span>{" "}
|
||||
{description}{" "}
|
||||
<div className="animate-wiggle inline-flex" target="_blank">
|
||||
{url_text}
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
|
@ -12,24 +12,22 @@ export default function TestimonialCard({ question, answer, src, alt }) {
|
||||
</p>
|
||||
</div>
|
||||
<div className=" ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
<Link href="https://yiff.life/@werefox">
|
||||
<a target="_blank">
|
||||
<div className="p-2 flex">
|
||||
<div className="order-1 flex-shrink-0 relative inline sm:w-32 w-16 min-h-full items-center justify-center align-middle pt-4 pb-4 pl-4">
|
||||
<Image
|
||||
src={finalsrc}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={alt}
|
||||
/>
|
||||
</div>
|
||||
<div className="order-2 flex overflow-auto items-center justify-center animate-wiggle p-4 sm:text-lg text-xs text-center sm:min-h-full h-full">
|
||||
{answer}
|
||||
<br />
|
||||
{"- @alice"}
|
||||
</div>
|
||||
<Link href="https://yiff.life/@werefox" target="_blank">
|
||||
<div className="p-2 flex">
|
||||
<div className="order-1 flex-shrink-0 relative inline sm:w-32 w-16 min-h-full items-center justify-center align-middle pt-4 pb-4 pl-4">
|
||||
<Image
|
||||
src={finalsrc}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={alt}
|
||||
/>
|
||||
</div>
|
||||
</a>
|
||||
<div className="order-2 flex overflow-auto items-center justify-center animate-wiggle p-4 sm:text-lg text-xs text-center sm:min-h-full h-full">
|
||||
{answer}
|
||||
<br />
|
||||
{"- @alice"}
|
||||
</div>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -5,14 +5,12 @@ export default function footerButton({ theme, url, inner_text, is_external }) {
|
||||
if (theme == "Ada") {
|
||||
return (
|
||||
<div className="flex-1 overflow-visible">
|
||||
<Link href={url}>
|
||||
<a target={target}>
|
||||
<div className="ml-1 mr-1 rounded-sm ring-2 ring-ada-werefox-cyan-dark dark:ring-ada-werefox-cyan hover:ring-skye-werefox-blue-dark dark:hover:ring-skye-werefox-blue text-ada-werefox-cyan-darker dark:text-ada-werefox-cyan hover:text-skye-werefox-blue-dark dark:hover:text-skye-werefox-blue-light transition">
|
||||
<p className="pl-2 pr-2 text-center sm:text-md text-sm">
|
||||
{inner_text}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<Link href={url} target={target}>
|
||||
<div className="ml-1 mr-1 rounded-sm ring-2 ring-ada-werefox-cyan-dark dark:ring-ada-werefox-cyan hover:ring-skye-werefox-blue-dark dark:hover:ring-skye-werefox-blue text-ada-werefox-cyan-darker dark:text-ada-werefox-cyan hover:text-skye-werefox-blue-dark dark:hover:text-skye-werefox-blue-light transition">
|
||||
<p className="pl-2 pr-2 text-center sm:text-md text-sm">
|
||||
{inner_text}
|
||||
</p>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
@ -20,28 +18,24 @@ export default function footerButton({ theme, url, inner_text, is_external }) {
|
||||
if (theme == "Skye") {
|
||||
return (
|
||||
<div className="flex-1 overflow-visible">
|
||||
<Link href={url}>
|
||||
<a target={target}>
|
||||
<div className="ml-1 mr-1 rounded-sm ring-2 ring-skye-werefox-pink-dark dark:ring-skye-werefox-pink hover:ring-skye-werefox-blue-dark dark:hover:ring-skye-werefox-blue text-skye-werefox-pink-darker dark:text-skye-werefox-pink hover:text-skye-werefox-blue-dark dark:hover:text-skye-werefox-blue-light transition">
|
||||
<p className="pl-2 pr-2 text-center sm:text-md text-sm">
|
||||
{inner_text}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<Link href={url} target={target}>
|
||||
<div className="ml-1 mr-1 rounded-sm ring-2 ring-skye-werefox-pink-dark dark:ring-skye-werefox-pink hover:ring-skye-werefox-blue-dark dark:hover:ring-skye-werefox-blue text-skye-werefox-pink-darker dark:text-skye-werefox-pink hover:text-skye-werefox-blue-dark dark:hover:text-skye-werefox-blue-light transition">
|
||||
<p className="pl-2 pr-2 text-center sm:text-md text-sm">
|
||||
{inner_text}
|
||||
</p>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<div className="flex-1 overflow-visible">
|
||||
<Link href={url}>
|
||||
<a target={target}>
|
||||
<div className="ml-1 mr-1 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-darker dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light transition">
|
||||
<p className="pl-2 pr-2 text-center sm:text-md text-sm">
|
||||
{inner_text}
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
<Link href={url} target={target}>
|
||||
<div className="ml-1 mr-1 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-darker dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light transition">
|
||||
<p className="pl-2 pr-2 text-center sm:text-md text-sm">
|
||||
{inner_text}
|
||||
</p>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
|
@ -14,30 +14,29 @@ export default function IdentityButton({
|
||||
|
||||
return (
|
||||
<div className="animate-wiggle container max-w-sm mx-auto md:px-2 p-2">
|
||||
<Link href={`${url}${maybeLocator}`}>
|
||||
<a
|
||||
className={`${extraClasses} block text-lg text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition`}
|
||||
>
|
||||
{images.map((source) => (
|
||||
<span
|
||||
key={source.src}
|
||||
className="relative inline-block w-4 h-4 align-middle mb-1"
|
||||
>
|
||||
{" "}
|
||||
<Image
|
||||
src={source.src}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={source.alt}
|
||||
/>{" "}
|
||||
</span>
|
||||
))}{" "}
|
||||
{innerText == "Partners"
|
||||
? partners > 0
|
||||
? `Taken(${partners})`
|
||||
: "Single"
|
||||
: innerText}
|
||||
</a>
|
||||
<Link
|
||||
href={`${url}${maybeLocator}`}
|
||||
className={`${extraClasses} block text-lg text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition`}
|
||||
>
|
||||
{images.map((source) => (
|
||||
<span
|
||||
key={source.src}
|
||||
className="relative inline-block w-4 h-4 align-middle mb-1"
|
||||
>
|
||||
{" "}
|
||||
<Image
|
||||
src={source.src}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={source.alt}
|
||||
/>{" "}
|
||||
</span>
|
||||
))}{" "}
|
||||
{innerText == "Partners"
|
||||
? partners > 0
|
||||
? `Taken(${partners})`
|
||||
: "Single"
|
||||
: innerText}
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
|
@ -3,12 +3,10 @@ import Link from "next/link";
|
||||
export default function IdentityCardButton({ url, button_text }) {
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a target="_blank">
|
||||
<div className="p-4 hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
|
||||
{button_text}
|
||||
</div>
|
||||
</a>
|
||||
<Link href={url} target="_blank">
|
||||
<div className="p-4 hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
|
||||
{button_text}
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
|
@ -13,8 +13,7 @@ export default function PageButton({
|
||||
if (Boolean(new_tab)) {
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a
|
||||
<Link href={url}
|
||||
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark ring-skye-werefox-pink-dark dark:ring-skye-werefox-pink hover:ring-skye-werefox-blue-dark dark:hover:ring-skye-werefox-blue text-skye-werefox-pink-dark dark:text-skye-werefox-pink hover:text-skye-werefox-blue-dark dark:hover:text-skye-werefox-blue-light focus:text-skye-werefox-blue-dark dark:focus:text-skye-werefox-blue-light hover:animate-yip transition`}
|
||||
target="_blank"
|
||||
>
|
||||
@ -32,15 +31,13 @@ export default function PageButton({
|
||||
</span>
|
||||
))}
|
||||
{` ${title}`}
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a
|
||||
<Link href={url}
|
||||
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-skye-werefox-grey-lightest dark:bg-skye-werefox-grey-dark ring-skye-werefox-pink-dark dark:ring-skye-werefox-pink hover:ring-skye-werefox-blue-dark dark:hover:ring-skye-werefox-blue text-skye-werefox-pink-dark dark:text-skye-werefox-pink hover:text-skye-werefox-blue-dark dark:hover:text-skye-werefox-blue-light focus:text-skye-werefox-blue-dark dark:focus:text-skye-werefox-blue-light hover:animate-yip transition`}
|
||||
>
|
||||
{images.map((source) => (
|
||||
@ -57,7 +54,6 @@ export default function PageButton({
|
||||
</span>
|
||||
))}
|
||||
{` ${title}`}
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
@ -66,8 +62,7 @@ export default function PageButton({
|
||||
if (Boolean(new_tab)) {
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a
|
||||
<Link href={url}
|
||||
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light focus:text-alice-werefox-blue-dark dark:focus:text-alice-werefox-blue-light hover:animate-yip transition`}
|
||||
target="_blank"
|
||||
>
|
||||
@ -85,15 +80,13 @@ export default function PageButton({
|
||||
</span>
|
||||
))}
|
||||
{` ${title}`}
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a
|
||||
<Link href={url}
|
||||
className={`${extra_classes} p-2 w-full inline-block text-lg text-center rounded-sm ring-2 bg-alice-werefox-grey-lightest dark:bg-alice-werefox-grey-dark ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light focus:text-alice-werefox-blue-dark dark:focus:text-alice-werefox-blue-light hover:animate-yip transition`}
|
||||
>
|
||||
{images.map((source) => (
|
||||
@ -110,7 +103,6 @@ export default function PageButton({
|
||||
</span>
|
||||
))}
|
||||
{` ${title}`}
|
||||
</a>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
|
@ -47,12 +47,10 @@ export function formatCustomEmoji(str, emoji_paths) {
|
||||
export function renderPossibleURLField(field, emoji_paths) {
|
||||
if (validURL(field)) {
|
||||
return (
|
||||
<Link href={field}>
|
||||
<a target="_blank">
|
||||
<div className="p-2 flex min-w-full min-h-full justify-center items-center align-middle ring-2 rounded-sm ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
{field}
|
||||
</div>
|
||||
</a>
|
||||
<Link href={field} target="_blank">
|
||||
<div className="p-2 flex min-w-full min-h-full justify-center items-center align-middle ring-2 rounded-sm ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
{field}
|
||||
</div>
|
||||
</Link>
|
||||
);
|
||||
} else {
|
||||
@ -113,25 +111,18 @@ export default function PartnerCard({
|
||||
|
||||
return (
|
||||
<div className="p-4 flex-column space-y-4 sm:break-normal break-all sm:text-sm text-xs text-center rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red">
|
||||
<Link href={url}>
|
||||
<a target="_blank">
|
||||
<div className="p-4 flex group rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
<div className="order-1 flex-1 flex-shrink-0 relative items-center justify-center align-middle sm:w-32 w-16 min-h-full mr-4">
|
||||
<Image
|
||||
src={finalsrc}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={alt}
|
||||
/>
|
||||
</div>
|
||||
<div className="order-2 flex-5 space-y-4">
|
||||
<div className="p-2 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red group-hover:ring-alice-werefox-blue-dark dark:group-hover:ring-alice-werefox-blue">
|
||||
{renderPossibleBio(bio, emoji_paths)}
|
||||
{`- @${user}`}
|
||||
</div>
|
||||
<Link href={url} target="_blank">
|
||||
<div className="p-4 flex group rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
<div className="order-1 flex-1 flex-shrink-0 relative items-center justify-center align-middle sm:w-32 w-16 min-h-full mr-4">
|
||||
<Image src={finalsrc} layout="fill" objectFit="contain" alt={alt} />
|
||||
</div>
|
||||
<div className="order-2 flex-5 space-y-4">
|
||||
<div className="p-2 rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red group-hover:ring-alice-werefox-blue-dark dark:group-hover:ring-alice-werefox-blue">
|
||||
{renderPossibleBio(bio, emoji_paths)}
|
||||
{`- @${user}`}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</Link>
|
||||
<div className="flex-column space-y-4 break-all text-alice-werefox-red-dark dark:text-alice-werefox-red-light">
|
||||
{renderPossibleFields(fields, emoji_paths)}
|
||||
|
@ -12,23 +12,16 @@ export default function projectCard({
|
||||
if (Boolean(new_tab)) {
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a target="_blank">
|
||||
<li className="p-4 space-y-2 rounded-sm ring-2 text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
|
||||
<div className="text-lg text-center">
|
||||
<span className="animate-jiggle sm:w-6 sm:h-6 w-4 h-6 inline-block align-top">
|
||||
<Image
|
||||
src={src}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={alt}
|
||||
/>
|
||||
</span>
|
||||
{` ${title}`}
|
||||
</div>
|
||||
<div className="text-md text-center">{description}</div>
|
||||
</li>
|
||||
</a>
|
||||
<Link href={url} target="_blank">
|
||||
<li className="p-4 space-y-2 rounded-sm ring-2 text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
|
||||
<div className="text-lg text-center">
|
||||
<span className="animate-jiggle sm:w-6 sm:h-6 w-4 h-6 inline-block align-top">
|
||||
<Image src={src} layout="fill" objectFit="contain" alt={alt} />
|
||||
</span>
|
||||
{` ${title}`}
|
||||
</div>
|
||||
<div className="text-md text-center">{description}</div>
|
||||
</li>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
@ -36,22 +29,15 @@ export default function projectCard({
|
||||
return (
|
||||
<div>
|
||||
<Link href={url}>
|
||||
<a>
|
||||
<li className="p-4 space-y-2 rounded-sm ring-2 text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
|
||||
<div className="text-lg text-center">
|
||||
<span className="animate-jiggle sm:w-6 sm:h-6 w-4 h-6 inline-block align-top">
|
||||
<Image
|
||||
src={src}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={alt}
|
||||
/>
|
||||
</span>
|
||||
{` ${title}`}
|
||||
</div>
|
||||
<div className="text-md text-center">{description}</div>
|
||||
</li>
|
||||
</a>
|
||||
<li className="p-4 space-y-2 rounded-sm ring-2 text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue hover:animate-yip transition">
|
||||
<div className="text-lg text-center">
|
||||
<span className="animate-jiggle sm:w-6 sm:h-6 w-4 h-6 inline-block align-top">
|
||||
<Image src={src} layout="fill" objectFit="contain" alt={alt} />
|
||||
</span>
|
||||
{` ${title}`}
|
||||
</div>
|
||||
<div className="text-md text-center">{description}</div>
|
||||
</li>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
|
@ -1,5 +1,4 @@
|
||||
import SCard from "./server-card";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function ServerBlock({ servers }) {
|
||||
return (
|
||||
|
@ -9,32 +9,30 @@ export default function TestimonialCard({ src, alt, url, innerText, user }) {
|
||||
|
||||
return (
|
||||
<div className="rounded-sm ring-2 ring-alice-werefox-red-dark dark:ring-alice-werefox-red hover:ring-alice-werefox-blue-dark dark:hover:ring-alice-werefox-blue text-alice-werefox-red-dark dark:text-alice-werefox-red-light hover:text-alice-werefox-blue-dark dark:hover:text-alice-werefox-blue-light hover:animate-yip transition">
|
||||
<Link href={url}>
|
||||
<a target="_blank">
|
||||
<div className="min-w-full flex overflow-hidden">
|
||||
<div className="order-1 flex-1 flex-shrink-0 pt-4 pb-4 pl-4">
|
||||
<span className="relative inline-block sm:w-32 w-16 sm:h-32 h-16">
|
||||
<Image
|
||||
className="rounded-sm"
|
||||
src={finalsrc}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={alt}
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<div className="order-2 flex flex-5 p-4 items-center justify-center min-h-full">
|
||||
<div className="animate-wiggle sm:text-lg text-xs text-center">
|
||||
{Object.keys(testimonialdict).map((t) => (
|
||||
<p className="overflow-auto" key={t}>
|
||||
{testimonialdict[t] == "" ? <br /> : testimonialdict[t]}
|
||||
</p>
|
||||
))}
|
||||
{`- @${user}`}
|
||||
</div>
|
||||
<Link href={url} target="_blank">
|
||||
<div className="min-w-full flex overflow-hidden">
|
||||
<div className="order-1 flex-1 flex-shrink-0 pt-4 pb-4 pl-4">
|
||||
<span className="relative inline-block sm:w-32 w-16 sm:h-32 h-16">
|
||||
<Image
|
||||
className="rounded-sm"
|
||||
src={finalsrc}
|
||||
layout="fill"
|
||||
objectFit="contain"
|
||||
alt={alt}
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
<div className="order-2 flex flex-5 p-4 items-center justify-center min-h-full">
|
||||
<div className="animate-wiggle sm:text-lg text-xs text-center">
|
||||
{Object.keys(testimonialdict).map((t) => (
|
||||
<p className="overflow-auto" key={t}>
|
||||
{testimonialdict[t] == "" ? <br /> : testimonialdict[t]}
|
||||
</p>
|
||||
))}
|
||||
{`- @${user}`}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
);
|
||||
|
@ -1,4 +1,3 @@
|
||||
import Link from "next/link";
|
||||
import Image from "next/image";
|
||||
|
||||
export default function TitleCard({ theme, card_title }) {
|
||||
|
7928
src/info/package-lock.json
generated
7928
src/info/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -13,11 +13,11 @@
|
||||
"foo": "^1.0.0",
|
||||
"glob-parent": "^6.0.2",
|
||||
"js-yaml": "^4.1.0",
|
||||
"next": "^10.2.3",
|
||||
"npm": "^7.24.2",
|
||||
"next": "^13.0.6",
|
||||
"npm": "^9.1.3",
|
||||
"postcss": "^8.3.9",
|
||||
"react": "17.0.2",
|
||||
"react-dom": "17.0.2",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-iframe": "^1.8.0",
|
||||
"tailwindcss": "^2.2.16"
|
||||
}
|
||||
|
@ -38,19 +38,17 @@ export default function Fursona({ FURSONA }) {
|
||||
>
|
||||
<IDCardText info={FURSONA[fursona].info} />
|
||||
<div className="rounded-lg hover:animate-yip transition">
|
||||
<Link href="https://plush.city/@Logan">
|
||||
<a target="_blank">
|
||||
<span className="relative inline-flex align-middle">
|
||||
<Image
|
||||
className="rounded-lg"
|
||||
src={FURSONA[fursona].src2}
|
||||
layout="intrinsic"
|
||||
width="2048"
|
||||
height="2048"
|
||||
alt={FURSONA[fursona].alt2}
|
||||
/>
|
||||
</span>
|
||||
</a>
|
||||
<Link href="https://plush.city/@Logan" target="_blank">
|
||||
<span className="relative inline-flex align-middle">
|
||||
<Image
|
||||
className="rounded-lg"
|
||||
src={FURSONA[fursona].src2}
|
||||
layout="intrinsic"
|
||||
width="2048"
|
||||
height="2048"
|
||||
alt={FURSONA[fursona].alt2}
|
||||
/>
|
||||
</span>
|
||||
</Link>
|
||||
</div>
|
||||
</IDCard>
|
||||
|
@ -38,19 +38,17 @@ export default function Fursona({ FURSONA }) {
|
||||
>
|
||||
<IDCardText info={FURSONA[fursona].info} />
|
||||
<div className="rounded-lg hover:animate-yip transition">
|
||||
<Link href="https://twitter.com/ribbonfemale">
|
||||
<a target="_blank">
|
||||
<span className="relative inline-flex align-middle">
|
||||
<Image
|
||||
className="rounded-lg"
|
||||
src={FURSONA[fursona].src2}
|
||||
layout="intrinsic"
|
||||
width="2048"
|
||||
height="2048"
|
||||
alt={FURSONA[fursona].alt2}
|
||||
/>
|
||||
</span>
|
||||
</a>
|
||||
<Link href="https://twitter.com/ribbonfemale" target="_blank">
|
||||
<span className="relative inline-flex align-middle">
|
||||
<Image
|
||||
className="rounded-lg"
|
||||
src={FURSONA[fursona].src2}
|
||||
layout="intrinsic"
|
||||
width="2048"
|
||||
height="2048"
|
||||
alt={FURSONA[fursona].alt2}
|
||||
/>
|
||||
</span>
|
||||
</Link>
|
||||
</div>
|
||||
</IDCard>
|
||||
|
Loading…
Reference in New Issue
Block a user