mirror of
https://github.com/NeonGamerBot-QK/saahild.com.git
synced 2025-07-28 17:14:07 +00:00
Compare commits
10 commits
5dd40519f7
...
08d6ff6c84
Author | SHA1 | Date | |
---|---|---|---|
|
08d6ff6c84 | ||
d52a0e9cca | |||
|
48188ad208 | ||
66f727e669 | |||
|
2c22a27a65 | ||
c1d2bb7c56 | |||
|
27a09424ef | ||
2f0fa2294e | |||
|
1432916a44 | ||
768cc7e600 |
3 changed files with 169 additions and 369 deletions
|
@ -1,6 +1,5 @@
|
||||||
import { json } from "stream/consumers";
|
import { json } from "stream/consumers";
|
||||||
import Icon from "../static/Icons";
|
import Icon from "../static/Icons";
|
||||||
import MIcon from "@mdi/react";
|
|
||||||
import {
|
import {
|
||||||
bash,
|
bash,
|
||||||
bun,
|
bun,
|
||||||
|
@ -29,254 +28,13 @@ import {
|
||||||
visualStudio,
|
visualStudio,
|
||||||
} from "../static/icons_list";
|
} from "../static/icons_list";
|
||||||
import "./skillset.css";
|
import "./skillset.css";
|
||||||
import { SiKalilinux, SiPostman } from "react-icons/si";
|
// import { SiKalilinux, SiPostman } from "react-icons/si";
|
||||||
import { mdiArch, mdiConsole, mdiLinux, mdiUbuntu } from "@mdi/js";
|
import { mdiArch, mdiConsole, mdiLinux, mdiUbuntu } from "@mdi/js";
|
||||||
export function SkillSet() {
|
export function SkillSet() {
|
||||||
return (
|
return <p>meow</p>;
|
||||||
<div className="items-center text-center place-items-center">
|
|
||||||
<h1 className="project-heading">
|
|
||||||
Professional <strong className="texthighlight">Skillset </strong>
|
|
||||||
</h1>
|
|
||||||
<div className="flex inline-flex grid ">
|
|
||||||
<div
|
|
||||||
style={{}}
|
|
||||||
className="flex-1 max-w-5xl text-center min-w-sm ms-auto me-auto"
|
|
||||||
>
|
|
||||||
<div className="inline-flex">
|
|
||||||
<a
|
|
||||||
href="https://www.w3schools.com/w3css/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon="css" className="w-40" width={2000} height={2000} />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://www.w3schools.com/js/DEFAULT.asp"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon="javascript" className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://www.typescriptlang.org/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon="typescript" className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a href="https://nextjs.org/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={next} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://www.npmjs.com/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={npm} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://www.prisma.io/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={prisma} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a href="https://pptr.dev/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={puppeteer} className="w-40" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div className="inline-flex">
|
|
||||||
<a
|
|
||||||
href="https://sass-lang.com/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={sass} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://tailwindcss.com/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={tailwind} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={bash} className="w-40" />
|
|
||||||
</div>
|
|
||||||
<a href="https://bun.sh/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={bun} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://cplusplus.com/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={cpp} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://www.docker.com/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={docker} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a href="https://graphql.org/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={graphql} className="w-40" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div className="inline-flex">
|
|
||||||
<a
|
|
||||||
href="https://www.w3schools.com/html/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={html} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a href="https://react.dev/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={javascriptReact} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://www.python.org/"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={python} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="https://dotnet.microsoft.com/en-us/languages/csharp"
|
|
||||||
className={"tech-icons inline-flex"}
|
|
||||||
>
|
|
||||||
<Icon icon={csharp} className="w-40" />
|
|
||||||
</a>
|
|
||||||
{/* for the sake of css coffeescript is out! */}
|
|
||||||
{/* <div className={"tech-icons inline-flex"}><Icon icon={coffeescript} className='w-40' /></div> */}
|
|
||||||
<a href="https://yarnpkg.com/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={yarn} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a href="https://ejs.co/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={ejs} className="w-40" />
|
|
||||||
</a>
|
|
||||||
<a href="https://pnpm.io/" className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={pnpm} className="w-40" />
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
{/*
|
|
||||||
|
|
||||||
*/}
|
|
||||||
</div>
|
|
||||||
{/* <br />
|
|
||||||
<div style={{ justifyContent: 'center', textAlign: 'center', alignItems: "center", marginLeft: '50px', paddingBottom: '50px' }} className='inline-flex'>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={tailwind} className='w-40' /></div>
|
|
||||||
</div> */}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
export function TechStack() {
|
export function TechStack() {
|
||||||
return (
|
return <p>meow</p>;
|
||||||
<div className="items-center text-center place-items-center">
|
|
||||||
<h1 className="project-heading">
|
|
||||||
<strong className="text-highlight">Tools</strong> I use
|
|
||||||
</h1>
|
|
||||||
<div className="flex inline-flex grid">
|
|
||||||
<div
|
|
||||||
style={{}}
|
|
||||||
className="content-center flex-1 max-w-5xl ms-auto me-auto min-w-sm"
|
|
||||||
>
|
|
||||||
<div className="inline-flex max-w-5xl min-w-sm">
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={vscode} className="w-40" width={2000} height={2000} />
|
|
||||||
</div>
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={git} className="w-40" width={2000} height={2000} />
|
|
||||||
</div>
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={docker} className="w-40" width={2000} height={2000} />
|
|
||||||
</div>
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={figma} className="w-40" width={2000} height={2000} />
|
|
||||||
</div>
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={robots} className="w-40" width={2000} height={2000} />
|
|
||||||
</div>
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon icon={vercel} className="w-40" width={2000} height={2000} />
|
|
||||||
</div>
|
|
||||||
<div className={"tech-icons inline-flex"}>
|
|
||||||
<Icon
|
|
||||||
icon={visualStudio}
|
|
||||||
className="w-40"
|
|
||||||
width={2000}
|
|
||||||
height={2000}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
{/* <div className={"tech-icons inline-flex"}><Icon icon=' className='w-40' /></div> */}
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<div className="inline-flex">
|
|
||||||
{/* <div className={"tech-icons inline-flex"}><Icon icon={figma} className='w-40' width={2000} height={2000}/></div> */}
|
|
||||||
<div
|
|
||||||
className={"tech-icons inline-flex mauve"}
|
|
||||||
style={{ color: "var(--mauve)" }}
|
|
||||||
>
|
|
||||||
<MIcon
|
|
||||||
path={mdiLinux}
|
|
||||||
size={2}
|
|
||||||
className="m-0 md:m-5 lg:w-full"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className={"tech-icons inline-flex mauve"}
|
|
||||||
style={{ color: "var(--mauve)" }}
|
|
||||||
>
|
|
||||||
<MIcon
|
|
||||||
path={mdiConsole}
|
|
||||||
size={2}
|
|
||||||
className="m-0 md:m-5 lg:w-full"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className={"tech-icons inline-flex mauve"}
|
|
||||||
style={{ color: "var(--mauve)" }}
|
|
||||||
>
|
|
||||||
<MIcon
|
|
||||||
path={mdiUbuntu}
|
|
||||||
size={2}
|
|
||||||
className="m-0 md:m-5 lg:w-full"
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className={"tech-icons inline-flex mauve"}
|
|
||||||
style={{ color: "var(--mauve)" }}
|
|
||||||
>
|
|
||||||
<MIcon path={mdiArch} size={2} className="m-0 md:m-5 lg:w-full" />
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className={"tech-icons inline-flex mauve"}
|
|
||||||
style={{ color: "var(--mauve)" }}
|
|
||||||
>
|
|
||||||
<SiPostman />
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
className={"tech-icons inline-flex mauve"}
|
|
||||||
style={{ color: "var(--mauve)" }}
|
|
||||||
>
|
|
||||||
{" "}
|
|
||||||
<SiKalilinux />
|
|
||||||
</div>
|
|
||||||
{/* <div className={"tech-icons inline-flex mauve"} style={{ color: "var(--mauve)"}}><MIcon path={mdiKaliLinux} size={2} className='w-full m-5' /></div> */}
|
|
||||||
</div>
|
|
||||||
{/* <div className='inline-flex'>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={html} className='w-40' /></div>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={javascriptReact} className='w-40' /></div>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={python} className='w-40' /></div>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={csharp} className='w-40' /></div> */}
|
|
||||||
{/* for the sake of css coffeescript is out! */}
|
|
||||||
{/* <div className={"tech-icons inline-flex"}><Icon icon={coffeescript} className='w-40' /></div> */}
|
|
||||||
{/* <div className={"tech-icons inline-flex"}><Icon icon={yarn} className='w-40' /></div>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={ejs} className='w-40' /></div>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={pnpm} className='w-40' /></div>
|
|
||||||
</div> */}
|
|
||||||
{/*
|
|
||||||
|
|
||||||
*/}
|
|
||||||
</div>
|
|
||||||
{/* <br />
|
|
||||||
<div style={{ justifyContent: 'center', textAlign: 'center', alignItems: "center", marginLeft: '50px', paddingBottom: '50px' }} className='inline-flex'>
|
|
||||||
<div className={"tech-icons inline-flex"}><Icon icon={tailwind} className='w-40' /></div>
|
|
||||||
</div> */}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
export default function () {
|
export default function () {
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -1,101 +1,169 @@
|
||||||
import React, { useEffect, useState } from "react"
|
import React, { useEffect, useState } from "react";
|
||||||
import "./style.css"
|
import "./style.css";
|
||||||
import { LuGitFork, LuGlobe } from "react-icons/lu"
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param param0
|
* @param param0
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
export function Card({ title, description, image,alt, Badges, svn_link, is_fork} : {
|
export function Card({
|
||||||
title: string ,
|
title,
|
||||||
description: string,
|
description,
|
||||||
image?: string,
|
image,
|
||||||
alt?: string,
|
alt,
|
||||||
Badges?: any,
|
Badges,
|
||||||
svn_link: string,
|
svn_link,
|
||||||
is_fork: Boolean
|
is_fork,
|
||||||
|
}: {
|
||||||
|
title: string;
|
||||||
|
description: string;
|
||||||
|
image?: string;
|
||||||
|
alt?: string;
|
||||||
|
Badges?: any;
|
||||||
|
svn_link: string;
|
||||||
|
is_fork: Boolean;
|
||||||
}) {
|
}) {
|
||||||
return <div style={{ background: "var(--surface0)"}}className="shadow-xl card md:w-80">
|
return (
|
||||||
{image ?
|
<div
|
||||||
<figure><img src={image} alt={alt || "No Alt"} /></figure>: null}
|
style={{ background: "var(--surface0)" }}
|
||||||
<div className="card-body">
|
className="shadow-xl card md:w-80"
|
||||||
<h2 className="text-center card-title text-highlight">{is_fork ? <LuGitFork /> : null}
|
>
|
||||||
<a href={svn_link}>{title}</a>
|
{image ? (
|
||||||
{/* <div className="badge badge-secondary">NEW</div> */}
|
<figure>
|
||||||
</h2>
|
<img src={image} alt={alt || "No Alt"} />
|
||||||
<p>{description}</p>
|
</figure>
|
||||||
<div className="justify-end card-actions">
|
) : null}
|
||||||
{/* <div className="badge badge-outline">Fashion</div>
|
<div className="card-body">
|
||||||
|
<h2 className="text-center card-title text-highlight">
|
||||||
|
<a href={svn_link}>{title}</a>
|
||||||
|
{/* <div className="badge badge-secondary">NEW</div> */}
|
||||||
|
</h2>
|
||||||
|
<p>{description}</p>
|
||||||
|
<div className="justify-end card-actions">
|
||||||
|
{/* <div className="badge badge-outline">Fashion</div>
|
||||||
<div className="badge badge-outline">Products</div> */}
|
<div className="badge badge-outline">Products</div> */}
|
||||||
{Badges ? Badges : ""}
|
{Badges ? Badges : ""}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
);
|
||||||
}
|
}
|
||||||
// oh boy i cannot WAIT for myself to add projects in via git
|
// oh boy i cannot WAIT for myself to add projects in via git
|
||||||
export default function Projects() {
|
export default function Projects() {
|
||||||
// most projects should be loaded via github
|
// most projects should be loaded via github
|
||||||
// otherwise they will all be concacted with the github.json file
|
// otherwise they will all be concacted with the github.json file
|
||||||
const [githubData, setGithubData] = useState ([])
|
const [githubData, setGithubData] = useState([]);
|
||||||
const [translateY, setTranslateY] = useState(0)
|
const [translateY, setTranslateY] = useState(0);
|
||||||
|
|
||||||
const fetchData = () => {
|
const fetchData = () => {
|
||||||
return Promise.all([fetch(`https://api.github.com/users/NeonGamerBot-QK/repos?per_page=100`)
|
return Promise.all([
|
||||||
.then((response) => response.json()),fetch(`https://api.github.com/users/NeonGamerBot-QK/repos?per_page=100?page=2`)
|
fetch(
|
||||||
.then((response) => response.json())])
|
`https://api.github.com/users/NeonGamerBot-QK/repos?per_page=100`,
|
||||||
|
).then((response) => response.json()),
|
||||||
|
fetch(
|
||||||
|
`https://api.github.com/users/NeonGamerBot-QK/repos?per_page=100?page=2`,
|
||||||
|
).then((response) => response.json()),
|
||||||
|
]).then((data) => {
|
||||||
|
if (process.env.NODE_ENV !== "production") console.log(data[0], data[1]);
|
||||||
|
const idsThatAreFound: any = {};
|
||||||
|
const items = [...data[0], ...data[1]]
|
||||||
|
.filter((e) => e.topics.includes("github-include-on-site"))
|
||||||
|
.filter(function (item, pos, self) {
|
||||||
|
if (idsThatAreFound[item.id]) return false;
|
||||||
|
idsThatAreFound[item.id] = true;
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
|
||||||
.then((data) =>
|
console.log();
|
||||||
{
|
if (process.env.NODE_ENV !== "production") console.log(items);
|
||||||
if(process.env.NODE_ENV !== "production") console.log(data[0], data[1])
|
//@ts-ignore
|
||||||
const idsThatAreFound:any = {}
|
setGithubData(items);
|
||||||
const items = [...data[0], ...data[1]]
|
});
|
||||||
.filter(e => e.topics.includes('github-include-on-site'))
|
};
|
||||||
.filter(function(item, pos, self) {
|
useEffect(() => {
|
||||||
if(idsThatAreFound[item.id]) return false;
|
fetchData();
|
||||||
idsThatAreFound[item.id] = true
|
}, []);
|
||||||
return true;
|
return (
|
||||||
})
|
<>
|
||||||
|
<div className="min-h-screen hero">
|
||||||
console.log()
|
<div
|
||||||
if(process.env.NODE_ENV !== "production") console.log(items)
|
className="flex-col text-center duration-1000 hero-content lg:flex-row"
|
||||||
//@ts-ignore
|
style={{ transform: `translateY(${translateY}%)` }}
|
||||||
setGithubData(items)
|
>
|
||||||
})
|
{/* <img src="https://img.daisyui.com/images/stock/photo-1635805737707-575885ab0820.jpg" className="max-w-sm rounded-lg shadow-2xl" /> */}
|
||||||
}
|
<div>
|
||||||
useEffect (() => {
|
<h1 className="text-5xl font-bold text-highlight lg:mt-20">
|
||||||
fetchData()
|
Projects
|
||||||
}, [])
|
</h1>
|
||||||
return <>
|
{/* <p className="py-6">Provident cupiditate voluptatem et in. Quaerat fugiat ut assumenda excepturi exercitationem quasi. In deleniti eaque aut repudiandae et a id nisi.</p>
|
||||||
<div className="min-h-screen hero">
|
|
||||||
<div className="flex-col text-center duration-1000 hero-content lg:flex-row" style={{ transform: `translateY(${translateY}%)`}}>
|
|
||||||
{/* <img src="https://img.daisyui.com/images/stock/photo-1635805737707-575885ab0820.jpg" className="max-w-sm rounded-lg shadow-2xl" /> */}
|
|
||||||
<div>
|
|
||||||
<h1 className="text-5xl font-bold text-highlight lg:mt-20">Projects</h1>
|
|
||||||
{/* <p className="py-6">Provident cupiditate voluptatem et in. Quaerat fugiat ut assumenda excepturi exercitationem quasi. In deleniti eaque aut repudiandae et a id nisi.</p>
|
|
||||||
<button className="btn btn-primary">Get Started</button> */}
|
<button className="btn btn-primary">Get Started</button> */}
|
||||||
<div className="flex grid grid-cols-2 gap-2 mt-5 text-center duration-1000 md:gap-6" style={{ transform: `translateY(${-translateY}%)` }}>
|
<div
|
||||||
{githubData.length > 0 ? githubData.map((d: any) => {
|
className="flex grid grid-cols-2 gap-2 mt-5 text-center duration-1000 md:gap-6"
|
||||||
return <Card title={d.name} description={d.description} key={d.id} svn_link={d.html_url} is_fork={d.fork}Badges={<>
|
style={{ transform: `translateY(${-translateY}%)` }}
|
||||||
<div className="inline-flex">
|
>
|
||||||
|
{githubData.length > 0 ? (
|
||||||
<a target="_blank" href={d.html_url + '/fork'} style={{ background: "var(--mantle)", borderRadius: "50%" }} className="rounded-full btn btn-change mauve"><LuGitFork /></a>
|
githubData.map((d: any) => {
|
||||||
{d.homepage ?
|
return (
|
||||||
<a target="_blank" href={d.homepage} style={{ background: "var(--mantle)", borderRadius: "50%" }} className="rounded-full btn btn-change mauve"><LuGlobe /></a>
|
<Card
|
||||||
: null}
|
title={d.name}
|
||||||
</div>
|
description={d.description}
|
||||||
<div className="hidden grid-cols-3 max-w-60 lg:inline-flex" >
|
key={d.id}
|
||||||
{d.topics.filter((e:string) => !e.includes('github-include-on-site')).map((topic:string,i:number) => {
|
svn_link={d.html_url}
|
||||||
return <div className="truncate badge badge-outline" key={i}><span className="truncate">{topic}</span></div>
|
is_fork={d.fork}
|
||||||
})}
|
Badges={
|
||||||
</div>
|
<>
|
||||||
</>}/>
|
<div className="inline-flex">
|
||||||
|
<a
|
||||||
}) : <div>
|
target="_blank"
|
||||||
<span className="loading loading-bars loading-lg mauve font-5xl"></span>
|
href={d.html_url + "/fork"}
|
||||||
</div>}
|
style={{
|
||||||
</div>
|
background: "var(--mantle)",
|
||||||
</div>
|
borderRadius: "50%",
|
||||||
</div>
|
}}
|
||||||
</div>
|
className="rounded-full btn btn-change mauve"
|
||||||
</>
|
></a>
|
||||||
}
|
{d.homepage ? (
|
||||||
|
<a
|
||||||
|
target="_blank"
|
||||||
|
href={d.homepage}
|
||||||
|
style={{
|
||||||
|
background: "var(--mantle)",
|
||||||
|
borderRadius: "50%",
|
||||||
|
}}
|
||||||
|
className="rounded-full btn btn-change mauve"
|
||||||
|
></a>
|
||||||
|
) : null}
|
||||||
|
</div>
|
||||||
|
<div className="hidden grid-cols-3 max-w-60 lg:inline-flex">
|
||||||
|
{d.topics
|
||||||
|
.filter(
|
||||||
|
(e: string) =>
|
||||||
|
!e.includes("github-include-on-site"),
|
||||||
|
)
|
||||||
|
.map((topic: string, i: number) => {
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
className="truncate badge badge-outline"
|
||||||
|
key={i}
|
||||||
|
>
|
||||||
|
<span className="truncate">{topic}</span>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
})
|
||||||
|
) : (
|
||||||
|
<div>
|
||||||
|
<span className="loading loading-bars loading-lg mauve font-5xl"></span>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
import { SiDiscord, SiReplit } from "react-icons/si";
|
|
||||||
import { FaKey } from "react-icons/fa";
|
|
||||||
import Icon from "../static/Icons";
|
import Icon from "../static/Icons";
|
||||||
import { git, npm } from "../static/icons_list";
|
import { git, npm } from "../static/icons_list";
|
||||||
import bento from "../../assets/bento.svg";
|
import bento from "../../assets/bento.svg";
|
||||||
import tor from "../../assets/tor.svg";
|
import tor from "../../assets/tor.svg";
|
||||||
import "./index.css";
|
import "./index.css";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import { LuGlobe, LuKey } from "react-icons/lu";
|
|
||||||
// import { FaCodeCommit} fr
|
// import { FaCodeCommit} fr
|
||||||
import { FaCodeCommit, FaRocket } from "react-icons/fa6";
|
|
||||||
const isDev = process.env.NODE_ENV !== "production";
|
const isDev = process.env.NODE_ENV !== "production";
|
||||||
|
|
||||||
type DiscordStatus = "dnd" | "idle" | "online" | "offline";
|
type DiscordStatus = "dnd" | "idle" | "online" | "offline";
|
||||||
|
@ -124,7 +120,7 @@ export default function Footer() {
|
||||||
className="badge mauve p-2 lg:visible hidden"
|
className="badge mauve p-2 lg:visible hidden"
|
||||||
style={{ background: "var(--surface1)" }}
|
style={{ background: "var(--surface1)" }}
|
||||||
>
|
>
|
||||||
<FaKey style={{ marginRight: "5px" }} /> {fingerprint}
|
{fingerprint}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
|
@ -137,7 +133,7 @@ export default function Footer() {
|
||||||
className="badge mauve p-2 md:visible invisible"
|
className="badge mauve p-2 md:visible invisible"
|
||||||
style={{ background: "var(--surface1)" }}
|
style={{ background: "var(--surface1)" }}
|
||||||
>
|
>
|
||||||
<FaCodeCommit style={{ marginRight: "5px" }} />{" "}
|
{" "}
|
||||||
{process.env.REACT_APP_BUILD_SHA}
|
{process.env.REACT_APP_BUILD_SHA}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -151,56 +147,34 @@ export default function Footer() {
|
||||||
className="badge mauve p-2 md:visible invisible"
|
className="badge mauve p-2 md:visible invisible"
|
||||||
style={{ background: "var(--surface1)" }}
|
style={{ background: "var(--surface1)" }}
|
||||||
>
|
>
|
||||||
<FaRocket style={{ marginRight: "5px" }} />{" "}
|
|
||||||
{process.env.REACT_APP_BUILD_ID}
|
{process.env.REACT_APP_BUILD_ID}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/NeonGamerBot-QK" target="_blank">
|
<a href="https://github.com/NeonGamerBot-QK" target="_blank"></a>
|
||||||
<Icon icon={git} />
|
<a href="https://www.npmjs.com/~neongamerbot" target="_blank"></a>
|
||||||
</a>
|
|
||||||
<a href="https://www.npmjs.com/~neongamerbot" target="_blank">
|
|
||||||
<Icon icon={npm} />
|
|
||||||
</a>
|
|
||||||
<div className="inline-flex gap-2 bottom mt-1">
|
<div className="inline-flex gap-2 bottom mt-1">
|
||||||
<a
|
<a
|
||||||
href="https://replit.com/@NeonGamerBotQK"
|
href="https://replit.com/@NeonGamerBotQK"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
className="inline-flex"
|
className="inline-flex"
|
||||||
>
|
></a>
|
||||||
<SiReplit
|
|
||||||
className="inline-flex hover:scale-125 duration-500 linear"
|
|
||||||
height="16"
|
|
||||||
width="16"
|
|
||||||
fill="var(--maroon)"
|
|
||||||
/>
|
|
||||||
</a>
|
|
||||||
<a
|
<a
|
||||||
href="https://bento.me/saahil"
|
href="https://bento.me/saahil"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
className="inline-flex"
|
className="inline-flex"
|
||||||
>
|
></a>
|
||||||
<Icon icon={bento} width={16} height={16} />{" "}
|
|
||||||
</a>
|
|
||||||
{lanyardData ? (
|
{lanyardData ? (
|
||||||
<a href="https://discord.com/users/566766267046821888">
|
<a href="https://discord.com/users/566766267046821888">
|
||||||
<SiDiscord
|
<p>m</p>
|
||||||
fill={
|
|
||||||
lanyardData.kv.is_disabled
|
|
||||||
? "var(--mauve)"
|
|
||||||
: getFillColor(lanyardData.discord_status)
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
</a>
|
</a>
|
||||||
) : null}
|
) : null}
|
||||||
</div>
|
</div>
|
||||||
{window.location.hostname.includes(".onion") ? (
|
{window.location.hostname.includes(".onion") ? (
|
||||||
<a href="http://saahild.com/">
|
<a href="http://saahild.com/">
|
||||||
<LuGlobe stroke="var(--mauve)" />
|
<p>globe</p>
|
||||||
</a>
|
</a>
|
||||||
) : (
|
) : (
|
||||||
<a href="https://ohdhie7qka42mvxcl2lb5bcxw6jumwn6lbqdmpli3xxhktvyqg2gtryd.onion/">
|
<a href="https://ohdhie7qka42mvxcl2lb5bcxw6jumwn6lbqdmpli3xxhktvyqg2gtryd.onion/"></a>
|
||||||
<Icon icon={tor} />
|
|
||||||
</a>
|
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* <a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" className="fill-current"><path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"></path></svg>
|
{/* <a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" className="fill-current"><path d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"></path></svg>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue