-
+ !(pathName.includes('login') || pathName.includes('join')) && (
+
+
+ )
)
}
diff --git a/src/components/ui/Loading.jsx b/src/components/ui/Loading.jsx
new file mode 100644
index 00000000..59d2170b
--- /dev/null
+++ b/src/components/ui/Loading.jsx
@@ -0,0 +1,5 @@
+import style from '@/components/ui/Loading.module.css'
+
+export default function Loading() {
+ return
+}
diff --git a/src/components/ui/Loading.module.css b/src/components/ui/Loading.module.css
new file mode 100644
index 00000000..7b3001f8
--- /dev/null
+++ b/src/components/ui/Loading.module.css
@@ -0,0 +1,35 @@
+.loader {
+ position: relative;
+ font-size: 48px;
+ letter-spacing: 6px;
+}
+.loader:before {
+ content: 'Loading';
+ color: #fff;
+}
+.loader:after {
+ content: '';
+ width: 20px;
+ height: 20px;
+ background-color: #ff3d00;
+ background-image: radial-gradient(circle 2px, #fff4 100%, transparent 0), radial-gradient(circle 1px, #fff3 100%, transparent 0);
+ background-position:
+ 14px -4px,
+ 12px -1px;
+ border-radius: 50%;
+ position: absolute;
+ margin: auto;
+ top: -5px;
+ right: 66px;
+ transform-origin: center bottom;
+ animation: fillBaloon 1s ease-in-out infinite alternate;
+}
+
+@keyframes fillBaloon {
+ 0% {
+ transform: scale(1);
+ }
+ 100% {
+ transform: scale(3);
+ }
+}
diff --git a/src/hooks/useAxios.js b/src/hooks/useAxios.js
index 4c7be165..d06d3a2e 100644
--- a/src/hooks/useAxios.js
+++ b/src/hooks/useAxios.js
@@ -38,6 +38,10 @@ export function useAxios() {
.catch(console.error)
}
+ const promiseGet = async ({ url }) => {
+ return await getInstances(url).get(url)
+ }
+
const post = async ({ url, data }) => {
return await getInstances(url)
.post(url, data)
@@ -70,5 +74,5 @@ export function useAxios() {
.catch(console.error)
}
- return { get, post, promisePost, put, patch, del }
+ return { get, promiseGet, post, promisePost, put, patch, del }
}
diff --git a/src/lib/authActions.js b/src/lib/authActions.js
index 06c02ef0..d3f5aaf3 100644
--- a/src/lib/authActions.js
+++ b/src/lib/authActions.js
@@ -4,9 +4,7 @@ import { cookies } from 'next/headers'
import { redirect } from 'next/navigation'
import { getIronSession } from 'iron-session'
-
-import { getUserByIdAndPassword } from './user'
-import { defaultSession, sessionOptions } from './session'
+import { sessionOptions } from './session'
export async function logout() {
const session = await getSession()
@@ -27,6 +25,15 @@ export async function getSession() {
return session
}
+export async function checkSession() {
+ const session = await getSession()
+
+ // if (!session.isLoggedIn) {
+ // redirect('/login')
+ // }
+ return session.isLoggedIn
+}
+
export async function setSession(data) {
const session = await getSession()
diff --git a/src/locales/ja.json b/src/locales/ja.json
index f4132734..12ef2163 100644
--- a/src/locales/ja.json
+++ b/src/locales/ja.json
@@ -15,8 +15,12 @@
"header.stem": "ステム",
"plan.menu.plan.drawing": "도면작성",
"plan.menu.placement.surface.initial.setting": "配置面 初期設定",
- "plan.menu.root.cover": "지붕덮개",
- "plan.menu.root.cover.outline.drawing": "外壁線を描",
+ "plan.menu.roof.cover": "지붕덮개",
+ "plan.menu.roof.cover.outline.drawing": "外壁線を描",
+ "plan.menu.roof.cover.roof.shape.setting": "屋根形状設定",
+ "plan.menu.roof.cover.roof.shape.edit": "지붕형상 편집",
+ "plan.menu.roof.cover.auxiliary.line.drawing": "補助線を描",
+ "plan.menu.roof.cover.roof.surface.alloc": "지붕면 할당",
"modal.cover.outline.drawing": "外壁線を描",
"modal.cover.outline": "外壁線",
"modal.cover.outline.right.angle": "直角",
@@ -30,9 +34,9 @@
"modal.cover.outline.rollback": "一変戦に戻る",
"modal.cover.outline.remove": "外壁の削除",
"modal.cover.outline.select.move": "外壁の選択、移動",
- "plan.menu.root.cover.roof.setting": "屋根形状設定",
- "plan.menu.root.cover.roof.edit": "지붕형상 편집",
- "plan.menu.root.cover.sub.line": "補助線を描",
+ "plan.menu.roof.cover.roof.setting": "屋根形状設定",
+ "plan.menu.roof.cover.roof.edit": "지붕형상 편집",
+ "plan.menu.roof.cover.sub.line": "補助線を描",
"plan.menu.placement.surface": "配置面",
"plan.menu.placement.surface.drawing": "배치면 그리기",
"plan.menu.placement.surface.surface": "면형상 배치",
diff --git a/src/locales/ko.json b/src/locales/ko.json
index 82b187bc..63ca7d9e 100644
--- a/src/locales/ko.json
+++ b/src/locales/ko.json
@@ -15,8 +15,12 @@
"header.stem": "Stem",
"plan.menu.plan.drawing": "도면작성",
"plan.menu.placement.surface.initial.setting": "배치면 초기 설정",
- "plan.menu.root.cover": "지붕덮개",
- "plan.menu.root.cover.outline.drawing": "외벽선 그리기",
+ "plan.menu.roof.cover": "지붕덮개",
+ "plan.menu.roof.cover.outline.drawing": "외벽선 그리기",
+ "plan.menu.roof.cover.roof.shape.setting": "지붕형상 설정",
+ "plan.menu.roof.cover.roof.shape.edit": "지붕형상 편집",
+ "plan.menu.roof.cover.auxiliary.line.drawing": "보조선 그리기",
+ "plan.menu.roof.cover.roof.surface.alloc": "지붕면 할당",
"modal.cover.outline.drawing": "외벽선 작성",
"modal.cover.outline": "외벽선",
"modal.cover.outline.right.angle": "직각",
@@ -30,9 +34,6 @@
"modal.cover.outline.rollback": "일변전으로 돌아가기",
"modal.cover.outline.remove": "외벽 제거",
"modal.cover.outline.select.move": "외벽 선택, 이동",
- "plan.menu.root.cover.roof.setting": "지붕형상 설정",
- "plan.menu.root.cover.roof.edit": "지붕형상 편집",
- "plan.menu.root.cover.sub.line": "보조선 그리기",
"plan.menu.placement.surface": "배치면",
"plan.menu.placement.surface.drawing": "배치면 그리기",
"plan.menu.placement.surface.surface": "면형상 배치",
diff --git a/src/middleware.js b/src/middleware.js
index f93c0506..c9e6811c 100644
--- a/src/middleware.js
+++ b/src/middleware.js
@@ -1,27 +1,27 @@
-import { createI18nMiddleware } from 'next-international/middleware'
+// import { createI18nMiddleware } from 'next-international/middleware'
-const I18nMiddleware = createI18nMiddleware({
- locales: ['ko', 'ja'],
- defaultLocale: 'ko',
-})
+// const I18nMiddleware = createI18nMiddleware({
+// locales: ['ko', 'ja'],
+// defaultLocale: 'ko',
+// })
-export function middleware(request) {
- return I18nMiddleware(request)
-}
+// export function middleware(request) {
+// return I18nMiddleware(request)
+// }
export const config = {
matcher: ['/((?!api|static|.*\\..*|_next|favicon.ico|robots.txt).*)'],
}
-// import { NextRequest, NextResponse } from 'next/server'
+import { NextRequest, NextResponse } from 'next/server'
-// export function middleware(request) {
-// const requestHeaders = new Headers(request.headers)
-// requestHeaders.set('x-pathname', request.nextUrl.pathname)
+export function middleware(request) {
+ const requestHeaders = new Headers(request.headers)
+ requestHeaders.set('x-pathname', request.nextUrl.pathname)
-// return NextResponse.next({
-// request: {
-// headers: requestHeaders,
-// },
-// })
-// }
+ return NextResponse.next({
+ request: {
+ headers: requestHeaders,
+ },
+ })
+}
diff --git a/src/store/modalAtom.js b/src/store/modalAtom.js
index 819669a1..a9a708ac 100644
--- a/src/store/modalAtom.js
+++ b/src/store/modalAtom.js
@@ -2,8 +2,14 @@ import { atom } from 'recoil'
export const modalState = atom({
key: 'modalState',
- default: {
- option: false,
- outerwall: false,
- },
+ default: false,
+})
+
+export const modalContent = atom({
+ key: 'modalContent',
+ default: (
+ <>
+
test
+ >
+ ),
})
diff --git a/src/styles/_modal.scss b/src/styles/_modal.scss
index c57e5968..0dd9d68f 100644
--- a/src/styles/_modal.scss
+++ b/src/styles/_modal.scss
@@ -22,8 +22,6 @@
.modal-pop-wrap {
position: fixed;
- top: 200px;
- right: 100px;
width: 100%;
min-width: 380px;
max-width: fit-content;