recoil 추가

This commit is contained in:
yoosangwook 2024-07-02 16:33:07 +09:00
parent cea2ecf9ef
commit 56b1683859
6 changed files with 45 additions and 4 deletions

View File

@ -13,6 +13,7 @@
"next": "14.2.3",
"react": "^18",
"react-dom": "^18",
"recoil": "^0.7.7",
"uuid": "^9.0.1"
},
"devDependencies": {

6
src/app/RecoilWrapper.js Normal file
View File

@ -0,0 +1,6 @@
'use client'
import { RecoilRoot } from 'recoil'
export default function RecoilRootWrapper({ children }) {
return <RecoilRoot>{children}</RecoilRoot>
}

View File

@ -1,6 +1,7 @@
import { Inter } from 'next/font/google'
import './globals.css'
import Headers from '@/components/Headers'
import RecoilRootWrapper from './RecoilWrapper'
const inter = Inter({ subsets: ['latin'] })
@ -14,7 +15,7 @@ export default function RootLayout({ children }) {
<html lang="en">
<body className={inter.className}>
<Headers />
{children}
<RecoilRootWrapper>{children}</RecoilRootWrapper>
</body>
</html>
)

View File

@ -1,10 +1,18 @@
'use client'
import Hero from '@/components/Hero'
import Roof from '@/components/Roof'
import Roof2 from '@/components/Roof2'
import { textState } from '@/store/canvasAtom'
import { useEffect } from 'react'
import { useRecoilState } from 'recoil'
export default function Roof2Page() {
const [text, setText] = useRecoilState(textState)
useEffect(() => {
console.log(text)
}, [])
export default function RoofPage() {
return (
<>
<Hero title="Drawing on canvas 2D Roof" />

6
src/store/canvasAtom.js Normal file
View File

@ -0,0 +1,6 @@
import { atom } from 'recoil'
export const textState = atom({
key: 'textState',
default: 'test text',
})

View File

@ -646,6 +646,11 @@ graceful-fs@^4.2.11:
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
hamt_plus@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/hamt_plus/-/hamt_plus-1.0.2.tgz#e21c252968c7e33b20f6a1b094cd85787a265601"
integrity sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==
has-unicode@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
@ -1174,6 +1179,13 @@ readdirp@~3.6.0:
dependencies:
picomatch "^2.2.1"
recoil@^0.7.7:
version "0.7.7"
resolved "https://registry.yarnpkg.com/recoil/-/recoil-0.7.7.tgz#c5f2c843224384c9c09e4a62c060fb4c1454dc8e"
integrity sha512-8Og5KPQW9LwC577Vc7Ug2P0vQshkv1y3zG3tSSkWMqkWSwHmE+by06L8JtnGocjW6gcCvfwB3YtrJG6/tWivNQ==
dependencies:
hamt_plus "1.0.2"
requires-port@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz"
@ -1331,7 +1343,14 @@ string_decoder@^1.1.1:
dependencies:
safe-buffer "~5.2.0"
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==