Merge branch 'dev' into dev-yj

This commit is contained in:
yjnoh 2025-01-02 11:19:23 +09:00
commit badfb8eaa2
3 changed files with 30 additions and 3 deletions

View File

@ -1,16 +1,24 @@
'use client' 'use client'
import { createContext, useState } from 'react' import { createContext, useEffect, useState } from 'react'
import { useLocalStorage } from 'usehooks-ts'
export const GlobalDataContext = createContext({ export const GlobalDataContext = createContext({
managementState: {}, managementState: {},
setManagementState: () => {}, setManagementState: () => {},
managementStateLoaded: null,
}) })
const GlobalDataProvider = ({ children }) => { const GlobalDataProvider = ({ children }) => {
const [managementState, setManagementState] = useState({}) const [managementState, setManagementState] = useState({})
// TODO: 임시 조치이며 개발 완료시 삭제 예정 -> 잊지말기...
const [managementStateLoaded, setManagementStateLoaded] = useLocalStorage('managementStateLoaded', null)
return <GlobalDataContext.Provider value={{ managementState, setManagementState }}>{children}</GlobalDataContext.Provider> useEffect(() => {
setManagementStateLoaded(managementState)
}, [managementState])
return <GlobalDataContext.Provider value={{ managementState, setManagementState, managementStateLoaded }}>{children}</GlobalDataContext.Provider>
} }
export default GlobalDataProvider export default GlobalDataProvider

View File

@ -1,6 +1,6 @@
'use client' 'use client'
import { useRef, useState, useEffect } from 'react' import { useRef, useState, useEffect, useContext } from 'react'
import { useRecoilState } from 'recoil' import { useRecoilState } from 'recoil'
import { v4 as uuidv4 } from 'uuid' import { v4 as uuidv4 } from 'uuid'
import { FaAnglesUp } from 'react-icons/fa6' import { FaAnglesUp } from 'react-icons/fa6'
@ -26,6 +26,7 @@ import QPagination from './common/pagination/QPagination'
import { trestleRequestModels, constructionRequestModels, trestleDetailRequestModels } from '@/models/apiModels' import { trestleRequestModels, constructionRequestModels, trestleDetailRequestModels } from '@/models/apiModels'
import QSelectBox from './common/select/QSelectBox' import QSelectBox from './common/select/QSelectBox'
import SampleReducer from './sample/SampleReducer' import SampleReducer from './sample/SampleReducer'
import { GlobalDataContext } from '@/app/GlobalDataProvider'
export default function Playground() { export default function Playground() {
const [useCadFile, setUseCadFile] = useRecoilState(useCadFileState) const [useCadFile, setUseCadFile] = useRecoilState(useCadFileState)
@ -52,6 +53,8 @@ export default function Playground() {
const [users, setUsers] = useState([]) const [users, setUsers] = useState([])
const { managementState, setManagementState, managementStateLoaded } = useContext(GlobalDataContext)
useEffect(() => { useEffect(() => {
console.log('textInput:', textInput) console.log('textInput:', textInput)
}, [textInput]) }, [textInput])
@ -508,6 +511,20 @@ export default function Playground() {
<div className="my-2"> <div className="my-2">
<SampleReducer /> <SampleReducer />
</div> </div>
<div className="my-2">
<Button onClick={() => setManagementState({ ...managementState, objectNo: '1234567890' })}>GlobalDataProvider 테스트</Button>
</div>
<div className="my-2">
<Button onClick={() => setManagementState({})}>GlobalDataProvider 초기화</Button>
</div>
<div className="my-2">
<p>{managementStateLoaded?.objectNo}</p>
</div>
<div className="my-2">
<Button onClick={() => swalFire({ text: 'alert 테스트입니다.', type: 'alert', confirmFn: () => console.log('Alert!!!') })}>
Sweetalert - alert
</Button>
</div>
</div> </div>
</> </>
) )

View File

@ -21,6 +21,8 @@ export const useSwal = () => {
text, text,
icon: icon === '' ? 'success' : icon, icon: icon === '' ? 'success' : icon,
confirmButtonText: '확인', confirmButtonText: '확인',
}).then(() => {
confirmFn()
}) })
} else if (type === 'confirm') { } else if (type === 'confirm') {
MySwal.fire({ MySwal.fire({