Files
desktop/app/hooks/useConsoleLogger.ts
rosetta 83f38dc63f 'init'
2026-01-30 05:01:05 +02:00

70 lines
2.9 KiB
TypeScript

import { usePrivateKeyHash } from "../providers/AccountProvider/usePrivateKeyHash";
import { usePrivatePlain } from "../providers/AccountProvider/usePrivatePlain";
import { usePublicKey } from "../providers/AccountProvider/usePublicKey";
export enum ConsoleLogLevel {
INFO = "INFO",
ERROR = "ERROR",
WARN = "WARN"
}
export function useConsoleLogger(component: string) {
const privatePlain = usePrivatePlain();
const publicKey = usePublicKey();
const privateKey = usePrivateKeyHash();
const constructTechnicalDetails = () => {
let time = new Date().toISOString();
//console.groupCollapsed('Details');
console.log('%cPublic Key: %c%s', 'color: orange; font-weight: bold;', 'color: white;', publicKey.trim() != "" ? publicKey : '[EMPTY]');
console.log('%cPrivate Key Hash: %c%s', 'color: orange; font-weight: bold;', 'color: white;', privateKey.trim() != "" ? privateKey : '[EMPTY]');
console.log('%cPrivate Plain: %c%s', 'color: orange; font-weight: bold;', 'color: white;', privatePlain.trim() != "" ? privatePlain : '[EMPTY]');
//console.groupEnd();
//console.groupCollapsed('Trace');
console.info('%cTime: %c%s', 'color: green; font-weight: bold;', 'color: white;', time);
console.info('%cComponent:%c %s', 'color: red; font-weight: bold;', 'color: #7CFC00; font-weight: bold;', component);
console.trace('%cStack trace:', 'color: purple; font-weight: bold;');
//console.groupEnd();
}
const constructLogLevelColor = (logLevel : ConsoleLogLevel) => {
switch(logLevel){
case ConsoleLogLevel.INFO:
return 'color: white; background-color: #00B5FF;';
case ConsoleLogLevel.ERROR:
return 'color: white; background-color: red;';
case ConsoleLogLevel.WARN:
return 'color: black; background-color: yellow;';
default:
return 'color: black; background-color: white;';
}
}
const constructMessageDetails = (message: string, logLevel : ConsoleLogLevel) => {
return [
`%c ${logLevel} %c ${message}`,
constructLogLevelColor(logLevel),
'color: #fefefe; font-weight: normal;'
];
}
const error = (message : string) => {
console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.ERROR));
constructTechnicalDetails();
console.groupEnd();
}
const info = (message : string) => {
console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.INFO));
constructTechnicalDetails();
console.groupEnd();
}
const warn = (message : string) => {
console.groupCollapsed(...constructMessageDetails(message, ConsoleLogLevel.WARN));
constructTechnicalDetails();
console.groupEnd();
}
return {error, info, warn};
}