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("") | |
}, | |
}, | |
}) | |
}) |