From f334de64be9865b97d2adc8ba08ea075e5fa5e5b Mon Sep 17 00:00:00 2001 From: Jayjunyoung Date: Mon, 13 May 2024 16:57:51 +0900 Subject: [PATCH 01/16] =?UTF-8?q?chore:=20develop=20=EB=B8=8C=EB=A0=8C?= =?UTF-8?q?=EC=B9=98=EC=97=90=EC=84=9C=20pull=20=EB=B0=9B=EC=95=84?= =?UTF-8?q?=EC=98=A4=EA=B3=A0=20npm=20install=20=EC=8B=A4=ED=96=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gitlio/package-lock.json | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/gitlio/package-lock.json b/gitlio/package-lock.json index 16b8c80..4344879 100644 --- a/gitlio/package-lock.json +++ b/gitlio/package-lock.json @@ -6611,7 +6611,6 @@ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" }, -<<<<<<< HEAD "node_modules/uuid": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", @@ -6624,25 +6623,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/webcrypto-core": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.8.tgz", - "integrity": "sha512-eBR98r9nQXTqXt/yDRtInszPMjTaSAMJAFDg2AHsgrnczawT1asx9YNBX6k5p+MekbPF4+s/UJJrr88zsTqkSg==", - "dependencies": { - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/json-schema": "^1.1.12", - "asn1js": "^3.0.1", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" - } - }, - "node_modules/webcrypto-core/node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, -======= ->>>>>>> 6b9e4ca (feat: Clerk login & backend sync api) "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", From c76f314d97b559b32785b1f95df6201a9542c239 Mon Sep 17 00:00:00 2001 From: Jayjunyoung Date: Tue, 14 May 2024 13:06:10 +0900 Subject: [PATCH 02/16] =?UTF-8?q?design:=20=EB=A0=88=EC=9D=B4=EC=95=84?= =?UTF-8?q?=EC=9B=83=20option=EC=97=90=20=EB=94=B0=EB=A5=B8=20introduction?= =?UTF-8?q?=20=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=20=EB=B3=80=EA=B2=BD=20?= =?UTF-8?q?=EC=B4=88=EA=B8=B0=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gitlio/app/editor/[portfolioDomain]/page.tsx | 2 +- .../(rightSideBar)/BaseSideBar.tsx | 29 +++++-- .../(sideBarLayout)/SectionLayout.tsx | 68 +++++++++++++++ .../_components/mainSection/IntroSection.tsx | 86 +++++++++++-------- gitlio/store/layoutDesignStore.tsx | 13 +++ 5 files changed, 156 insertions(+), 42 deletions(-) create mode 100644 gitlio/app/editor/_components/(sideBarLayout)/SectionLayout.tsx create mode 100644 gitlio/store/layoutDesignStore.tsx diff --git a/gitlio/app/editor/[portfolioDomain]/page.tsx b/gitlio/app/editor/[portfolioDomain]/page.tsx index ed2f314..15e823d 100644 --- a/gitlio/app/editor/[portfolioDomain]/page.tsx +++ b/gitlio/app/editor/[portfolioDomain]/page.tsx @@ -14,7 +14,7 @@ export default function EditPage() { return (
setSelectedSection('information')} + onClick={() => setSelectedSection('introduction')} className="mb-4 cursor-pointer" > diff --git a/gitlio/app/editor/_components/(rightSideBar)/BaseSideBar.tsx b/gitlio/app/editor/_components/(rightSideBar)/BaseSideBar.tsx index e1f642f..ef98132 100644 --- a/gitlio/app/editor/_components/(rightSideBar)/BaseSideBar.tsx +++ b/gitlio/app/editor/_components/(rightSideBar)/BaseSideBar.tsx @@ -5,10 +5,12 @@ import useSidebarStore from '@/store/sidebarStore'; import SkillSideBar from '@/app/editor/_components/(rightSideBar)/SkillSideBar'; // 스토어 경로는 실제 경로에 맞게 조정하세요. import IntroSideBar from './IntroSideBar'; import ContactSideBar from './ContactSideBar'; +import { useState } from 'react'; +import SectionLayout from '../(sideBarLayout)/SectionLayout'; export default function BaseSideBar() { const { selectedSection, setSelectedSection } = useSidebarStore(); - const layoutSelected = false; + const [layoutSelected, setLayoutSelected] = useState(false); //탭 선택을 관리해주는 상태관리 return (
@@ -16,17 +18,30 @@ export default function BaseSideBar() { role="tablist" className="tabs bg-neutral-300 tabs-boxed my-6 grid grid-flow-col auto-cols-fr" > - + setLayoutSelected(false)} + > Content - + setLayoutSelected(true)} + > Layout
- {selectedSection === 'experience' && } - {selectedSection === 'skill' && } - {selectedSection === 'information' && } - {selectedSection === 'contact' && } + {!layoutSelected && selectedSection === 'experience' && ( + + )} + {!layoutSelected && selectedSection === 'skill' && } + {!layoutSelected && selectedSection === 'introduction' && ( + + )} + {!layoutSelected && selectedSection === 'contact' && } + {layoutSelected && }
); } diff --git a/gitlio/app/editor/_components/(sideBarLayout)/SectionLayout.tsx b/gitlio/app/editor/_components/(sideBarLayout)/SectionLayout.tsx new file mode 100644 index 0000000..82f288d --- /dev/null +++ b/gitlio/app/editor/_components/(sideBarLayout)/SectionLayout.tsx @@ -0,0 +1,68 @@ +import useDesignStore from '@/store/layoutDesignStore'; +import React from 'react'; + +type SectionProps = { + section: string; +}; + +const SectionLayout = ({ section }: SectionProps) => { + const { setLayoutOption } = useDesignStore(); + const handleOption1 = () => { + setLayoutOption('option1'); + }; + + const handleOption2 = () => { + setLayoutOption('option2'); + }; + + return ( +
+

{section} Layout Options

+ {section === 'introduction' && ( +
+ + +
+ )} + {/* 다른 섹션에 대한 레이아웃 옵션도 여기에 추가할 수 있습니다. */} + {section === 'experience' && ( +
+
+ + +
+
+ )} + {section === 'skill' && ( +
+ + +
+ )} + {section === 'contact' && ( +
+ + +
+ )} +
+ ); +}; + +export default SectionLayout; diff --git a/gitlio/app/editor/_components/mainSection/IntroSection.tsx b/gitlio/app/editor/_components/mainSection/IntroSection.tsx index d8a93d1..6b7ed04 100644 --- a/gitlio/app/editor/_components/mainSection/IntroSection.tsx +++ b/gitlio/app/editor/_components/mainSection/IntroSection.tsx @@ -3,9 +3,11 @@ import React, { useEffect, useRef } from 'react'; import IntroSidebarStore from '@/store/introSidebarStore'; import IntroTagList from './introComponents/IntroTagList'; +import useDesignStore from '@/store/layoutDesignStore'; export default function IntroSection() { const { profile } = IntroSidebarStore(); + const { layoutOption } = useDesignStore(); const textareaRef = useRef(null); useEffect(() => { @@ -17,46 +19,62 @@ export default function IntroSection() { }, [profile.introDescription]); return ( -
-
+
+

#Introduction

-
- {profile.profileImage ? ( - Profile +
+
+
+
+ {profile.profileImage ? ( + Profile + ) : ( +
+ Profile +
+ )} +
+
+
+ {profile.title ? ( +
+ {profile.title} +
) : ( -
- Profile +
+ {'insert your title'}
)} -
-
-
- {profile.title ? ( -
- {profile.title} -
- ) : ( -
- {'insert your title'} -
- )} -
- {profile.tagList?.map((tag, index) => ( - - ))} +
+ {profile.tagList?.map((tag, index) => ( + + ))} +
+