rel="me"
links & easy linting
This commit is contained in:
parent
36fab09613
commit
386c0850a9
5 changed files with 8 additions and 21 deletions
|
@ -58,7 +58,7 @@ export default function Wanikani() {
|
|||
};
|
||||
|
||||
useEffect(() => {
|
||||
getWanikani().catch((e) => {
|
||||
getWanikani().catch(() => {
|
||||
setError(true);
|
||||
});
|
||||
}, []);
|
||||
|
@ -71,14 +71,14 @@ export default function Wanikani() {
|
|||
let level = <></>;
|
||||
const unlockedLevels = wanikani.progression.data.filter(d => typeof d.data.unlocked_at === "string");
|
||||
if (unlockedLevels.length) {
|
||||
let arr = unlockedLevels.sort((a, b) => new Date(b.data.unlocked_at!).getTime() - new Date(a.data.unlocked_at!).getTime());
|
||||
const arr = unlockedLevels.sort((a, b) => new Date(b.data.unlocked_at!).getTime() - new Date(a.data.unlocked_at!).getTime());
|
||||
level = <p className="mb-4"><b>Level {arr[0].data.level}</b> reached!<br/>
|
||||
<b>{new Date(arr[0].data.unlocked_at!).toISOString().substring(0, 10)}</b></p>;
|
||||
}
|
||||
|
||||
let resets = <></>;
|
||||
if (wanikani.resets.length) {
|
||||
let allResets: React.JSX.Element[] = [];
|
||||
const allResets: React.JSX.Element[] = [];
|
||||
for (const dataWrapper of wanikani.resets) {
|
||||
const data = dataWrapper.data;
|
||||
allResets.push(<p><b>{`${new Date(data.created_at).toISOString().substring(0, 10)}`}</b>{`: Reset my progress from level ${data.original_level} to level ${data.target_level}`}</p>);
|
||||
|
|
|
@ -16,7 +16,7 @@ export default function SocialButton({
|
|||
padding?: string;
|
||||
}) {
|
||||
return (
|
||||
<a draggable="false" href={link} target="_blank" rel="noreferrer">
|
||||
<a draggable="false" href={link} rel="me">
|
||||
<button title={title} className={`
|
||||
m-1 h-12 w-12 bg-white text-black tracking-[-.2em]
|
||||
rounded-full border-solid hover:border-dashed active:brightness-95 border-4 hover:border-8 ${border}
|
||||
|
|
|
@ -33,8 +33,8 @@ export default function Support({
|
|||
/>
|
||||
</p>
|
||||
<Translatable
|
||||
en={<ButtonLink link="https://ko-fi.com/V7V4J78L0" text="Support me on Ko-fi!" />}
|
||||
fr={<ButtonLink link="https://ko-fi.com/V7V4J78L0" text="Soutenez-moi sur Ko-fi !"/>}
|
||||
en={<ButtonLink link="https://ko-fi.com/taevas" text="Support me on Ko-fi!" />}
|
||||
fr={<ButtonLink link="https://ko-fi.com/taevas" text="Soutenez-moi sur Ko-fi !"/>}
|
||||
/>
|
||||
</div>
|
||||
)];
|
||||
|
|
|
@ -24,7 +24,7 @@ export default function Website({
|
|||
|
||||
return (
|
||||
<div className="hover:font-bold active:font-bold overflow-hidden">
|
||||
<a href={link} target="_blank" rel="noreferrer" draggable="false">
|
||||
<a href={link} rel="me" draggable="false">
|
||||
<h2 className="pr-1 py-1 rounded-tr-[10px] bg-white uppercase text-right font-bold text-indigo-500 transition-all
|
||||
hover:brightness-110 hover:pr-4 hover:text-blue-600">
|
||||
{name}
|
||||
|
|
|
@ -4,26 +4,13 @@ import Tabs from "./MainContent/Tabs.js";
|
|||
import {type TabDetails, LanguageContext, TabContext} from "../contexts.js";
|
||||
|
||||
export default function MainContent() {
|
||||
const storedTabs = localStorage.getItem("tabs")?.split(",")
|
||||
.filter((t) => t.length)
|
||||
.map((t) => {
|
||||
const details = t.split("_");
|
||||
return ({
|
||||
id: details[0],
|
||||
priority: details[1],
|
||||
} satisfies TabDetails);
|
||||
});
|
||||
const [lang, setLang] = useState<string>(localStorage.getItem("lang") ?? "en");
|
||||
const [tabs, setTabs] = useState<TabDetails[]>([]); //(storedTabs?.length ? storedTabs : []);
|
||||
const [tabs, setTabs] = useState<TabDetails[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem("lang", lang);
|
||||
}, [lang]);
|
||||
|
||||
useEffect(() => {
|
||||
localStorage.setItem("tabs", tabs.map((t) => `${t.id}_${t.priority}`).toString());
|
||||
}, [tabs]);
|
||||
|
||||
return (
|
||||
<div className="h-screen w-screen max-w-[1632px] m-auto lg:pl-[50px] lg:pr-[413px] lg:py-12">
|
||||
<LanguageContext.Provider value={lang}>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue