44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import { useEffect } from 'react'
|
|
import { useRecoilValue } from 'recoil'
|
|
import { appMessageStore, globalLocaleStore } 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 globalLocale = useRecoilValue(globalLocaleStore)
|
|
const appMessageState = globalLocale === 'ko' ? KO : JA
|
|
|
|
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 }
|
|
}
|