File size: 873 Bytes
a417977 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
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("")
},
},
})
}) |