feat: Add key backup reminder. Refactor Toast component to handle dark mode better

This commit is contained in:
Dan Ditomaso
2025-01-07 15:08:01 -05:00
parent 74e33d09b1
commit f3a3741216
10 changed files with 326 additions and 137 deletions
+35
View File
@@ -0,0 +1,35 @@
import React from "react";
import Cookies, { type CookieAttributes } from "js-cookie";
type Cookie<T> = [
T | undefined,
(value: T, options?: CookieAttributes) => void,
() => void,
];
const useCookie = <T>(
cookieName: string,
initialValue?: T,
): Cookie<T> => {
const [cookieValue, setCookieValue] = React.useState<T | undefined>(() => {
const cookie = Cookies.get(cookieName);
return cookie ? (JSON.parse(cookie) as T) : initialValue;
});
const setCookie = React.useCallback(
(value: T, options?: CookieAttributes) => {
Cookies.set(cookieName, JSON.stringify(value), options);
setCookieValue(value);
},
[cookieName],
);
const removeCookie = React.useCallback(() => {
Cookies.remove(cookieName);
setCookieValue(undefined);
}, [cookieName]);
return [cookieValue, setCookie, removeCookie];
};
export default useCookie;