qcast-front/src/hooks/useMessage.js
yoosangwook 867b62a366 Refactor locale layout and message handling
- Refactor the locale layout component to use the useEffect hook and Recoil state management for app messages.
- Update the getMessage function in the useMessage hook to retrieve messages from the appMessageStore Recoil atom.
- Remove unused imports and commented out code.
2024-09-11 10:57:23 +09:00

41 lines
1.2 KiB
JavaScript

import { useRecoilValue } from 'recoil'
import { appMessageStore } from '@/store/localeAtom'
// import KO from '@/locales/ko.json'
// import JA from '@/locales/ja.json'
const SESSION_STORAGE_MESSAGE_KEY = 'QCAST_MESSAGE_STORAGE'
export const useMessage = () => {
// const globalLocale = useRecoilValue(globalLocaleState)
const appMessageState = useRecoilValue(appMessageStore)
const getMessage = (key, args = []) => {
// if (sessionStorage.getItem(SESSION_STORAGE_MESSAGE_KEY) === null) {
// if (globalLocale === 'ko') {
// setSessionMessage(JSON.stringify(KO))
// } else {
// setSessionMessage(JSON.stringify(JA))
// }
// }
// const sessionMessage = getSessionMessage()
// const message = sessionMessage[key] || key
const message = appMessageState[key] || key
return args.reduce((acc, arg, i) => {
return acc.replaceAll(`{${i}}`, arg)
}, message)
}
const setSessionMessage = (sessionMessage) => {
sessionStorage.setItem(SESSION_STORAGE_MESSAGE_KEY, sessionMessage)
}
const getSessionMessage = () => {
return JSON.parse(sessionStorage.getItem(SESSION_STORAGE_MESSAGE_KEY))
}
return { getMessage }
}