Greums's picture
major improvements to the app
a417977
raw
history blame
873 Bytes
import {createContext} from "@/utils/context"
export type LogAction = (text: string, newLine?: boolean) => void;
const itemKey = "log";
export const logCtx = createContext({
initialValue: () => {
const storedLog = localStorage.getItem(itemKey);
return storedLog || "";
},
controllers: (log: string, setLog) => ({
effect: () => {
localStorage.setItem(itemKey, log);
},
actions: {
log: ((text, newLine = true) => {
console.log(text);
const prefix = `[${new Date().toLocaleTimeString('en-US', {hour12: false})}] `;
setLog(log.length < 1 ? `${newLine ? prefix : ""}${text}` : `${log}${newLine ? `\n${prefix}` : ""}${text}`);
}) satisfies LogAction,
reset: () => {
setLog("")
},
},
})
})