From 9615318894631fc49724a5c6b485776dcbbe5dce Mon Sep 17 00:00:00 2001 From: hhhello Date: Wed, 15 Jan 2025 20:42:26 +0900 Subject: [PATCH] =?UTF-8?q?=ED=85=9C=ED=94=8C=EB=A6=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 7 ++-- ...e1.style.ts => TemplateComponent.style.ts} | 4 +-- .../{Template1.tsx => TemplateComponent.tsx} | 32 +++++++++++++++---- .../weddingday/WeddingDayTemplate.tsx | 4 ++- src/designsystem/component/segmentedButton.ts | 23 +++++++++++++ src/page/invitation/InvitationLayout.tsx | 2 -- .../component/InvitationSideBar.tsx | 2 +- .../component/InvitationSideBarType.ts | 6 +--- .../dashboard/dialog/CreateDesignDialog.tsx | 2 +- .../invitation/design/InvitationDesign.tsx | 4 +-- .../component/OptionSegmentedButton.tsx | 30 +++++------------ .../design/option/TemplateOption.tsx | 19 +++++++++-- src/remote/value/Template.ts | 11 ++++++- 13 files changed, 97 insertions(+), 49 deletions(-) rename src/component/template/{Template1.style.ts => TemplateComponent.style.ts} (88%) rename src/component/template/{Template1.tsx => TemplateComponent.tsx} (72%) create mode 100644 src/designsystem/component/segmentedButton.ts diff --git a/src/App.tsx b/src/App.tsx index 630eb12..f7c9ae7 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -14,10 +14,11 @@ import FoundationDemo from "@designsystem/demo/foundation.demo"; import NotificationPage from "@page/notification/NotificationPage"; import NotificationDetailPage from "@page/notification/detail/NotificationDetailPage"; import InvitationDashboardGuestComment from "@page/invitation/dashboard/guestComment/InvitationDashboardGuestComment"; -import Template1 from "@src/component/template/Template1"; +import TemplateComponent from "@src/component/template/TemplateComponent"; import {dummyWedding} from "@remote/value/Wedding"; import TemplatesPage from "@page/templates/TemplatesPage"; import GlobalStyle from "@src/GlobalStyle"; +import Cookies from "js-cookie"; const {Kakao} = window as any; @@ -40,8 +41,8 @@ function App() { }/> }/> + }/> - }/> }/> }/> @@ -62,7 +63,7 @@ function App() { {/*temp*/} - + )}/> diff --git a/src/component/template/Template1.style.ts b/src/component/template/TemplateComponent.style.ts similarity index 88% rename from src/component/template/Template1.style.ts rename to src/component/template/TemplateComponent.style.ts index 967f8ee..f3493c1 100644 --- a/src/component/template/Template1.style.ts +++ b/src/component/template/TemplateComponent.style.ts @@ -1,5 +1,4 @@ import styled from "styled-components"; -import colors from "@designsystem/foundation/colors"; import {LinkMarryFont} from "@designsystem/foundation/text/textType"; import {implementText} from "@designsystem/foundation/text/textProperties"; @@ -14,5 +13,4 @@ export const container = styled.div<{ $templateFont: LinkMarryFont }>` fontFamily: $templateFont })}; } -`; - +`; \ No newline at end of file diff --git a/src/component/template/Template1.tsx b/src/component/template/TemplateComponent.tsx similarity index 72% rename from src/component/template/Template1.tsx rename to src/component/template/TemplateComponent.tsx index 5a186ca..c9d65e3 100644 --- a/src/component/template/Template1.tsx +++ b/src/component/template/TemplateComponent.tsx @@ -1,23 +1,24 @@ import React, {useRef} from 'react'; import Wedding from "@remote/value/Wedding"; -import * as S from '@src/component/template/Template1.style'; +import * as S from '@src/component/template/TemplateComponent.style'; import MoneyInfoTemplate from "@src/component/template/component/MoneyInfoTemplate"; import FooterTemplate from "@src/component/template/component/FooterTemplate"; -import {templateFontSizeRecord} from "@remote/value/Template"; +import {templateFontSizeRecord, TemplateName} from "@remote/value/Template"; import GuestCommentsTemplate from "@src/component/template/component/GuestCommentsTemplate"; import {increaseFontSize} from "@util/html.util"; import CongratulationsTemplate from "@src/component/template/component/CongratulationsTemplate"; import WeddingDayTemplate from "@src/component/template/component/weddingday/WeddingDayTemplate"; import LocationTemplate from "@src/component/template/component/LocationTemplate"; import PreviewTemplate from "@src/component/template/component/PreviewTemplate"; -import GalleryTemplate from "@src/component/template/component/GalleryTemplate"; +import GalleryTemplate, {GallerySlideStyle} from "@src/component/template/component/GalleryTemplate"; import VideoTemplate from "@src/component/template/component/VideoTemplate"; +import {DDayStyle} from "@src/component/template/component/weddingday/DDay"; interface Template1Props { wedding: Wedding; } -function Template1( +function TemplateComponent( { wedding }: Template1Props @@ -30,6 +31,24 @@ function Template1( increaseFontSize(rootRef, addFontSize); })(); + const slideStyle: Record = { + 템플릿1: 'style1', + 템플릿2: 'style2', + 템플릿3: 'style1', + 템플릿4: 'style2', + 템플릿5: undefined, + 템플릿6: 'style1', + }; + + const dDayStyle: Record = { + 템플릿1: 'style1', + 템플릿2: 'style2', + 템플릿3: 'style1', + 템플릿4: 'style2', + 템플릿5: 'style2', + 템플릿6: 'style1', + } + return ( ` + height: 44px; + border-radius: 8px; + background: ${colors.white}; + cursor: pointer; + flex: 1; + ${({selected}) => selected ? css` + border: 2px solid ${colors.p800}; + color: ${colors.p800}; + ${makeText('p4')}; + ` : css` + border: 2px solid ${colors.g200}; + color: ${colors.g400}; + ${makeText('p5')}; + `} +`; + +export default SegmentedButton; \ No newline at end of file diff --git a/src/page/invitation/InvitationLayout.tsx b/src/page/invitation/InvitationLayout.tsx index 2e45441..9326e12 100644 --- a/src/page/invitation/InvitationLayout.tsx +++ b/src/page/invitation/InvitationLayout.tsx @@ -8,8 +8,6 @@ import {InvitationSideBarType} from "@page/invitation/component/InvitationSideBa function getSelectedSideBarType(pathname: string): InvitationSideBarType | null { if (pathname.startsWith('/invitation/dashboard')) { return 'dashboard'; - } else if (pathname.startsWith('/invitation/design')) { - return 'design'; } else if (pathname.startsWith('/invitation/statistics')) { return 'statistics'; } else { diff --git a/src/page/invitation/component/InvitationSideBar.tsx b/src/page/invitation/component/InvitationSideBar.tsx index 7475151..9e50575 100644 --- a/src/page/invitation/component/InvitationSideBar.tsx +++ b/src/page/invitation/component/InvitationSideBar.tsx @@ -11,7 +11,7 @@ interface InvitationSideBarProps { onChange: (item: InvitationSideBarType) => void; } -const items: InvitationSideBarType[] = ['dashboard', 'design', 'statistics']; +const items: InvitationSideBarType[] = ['dashboard', 'statistics']; function InvitationSideBar( { diff --git a/src/page/invitation/component/InvitationSideBarType.ts b/src/page/invitation/component/InvitationSideBarType.ts index 0bd1db6..b7c9b7d 100644 --- a/src/page/invitation/component/InvitationSideBarType.ts +++ b/src/page/invitation/component/InvitationSideBarType.ts @@ -1,6 +1,6 @@ import {IconType} from "@designsystem/foundation/icon"; -export type InvitationSideBarType = 'dashboard' | 'design' | 'statistics'; +export type InvitationSideBarType = 'dashboard' | 'statistics'; export const invitationSideBarRecords: Record - + diff --git a/src/page/invitation/design/component/OptionSegmentedButton.tsx b/src/page/invitation/design/component/OptionSegmentedButton.tsx index 9deaabb..f85b7c4 100644 --- a/src/page/invitation/design/component/OptionSegmentedButton.tsx +++ b/src/page/invitation/design/component/OptionSegmentedButton.tsx @@ -3,6 +3,7 @@ import styled, {css} from "styled-components"; import colors from "@designsystem/foundation/colors"; import makeText from "@designsystem/foundation/text/textType"; import {Row} from "@designsystem/component/flexLayout"; +import SegmentedButton from "@designsystem/component/segmentedButton"; interface OptionSegmentedButtonProps extends HTMLAttributes { selectedIndex?: number; @@ -21,31 +22,16 @@ function OptionSegmentedButton( return ( {items.map((item, index) => ( - { - onClickItem(index); - }} selected={index === selectedIndex}>{item} + { + onClickItem(index); + }} + selected={index === selectedIndex} + >{item} ))} ); } -const S = { - segmentedButton: styled.button<{ selected: boolean; }>` - height: 44px; - border-radius: 8px; - background: ${colors.white}; - cursor: pointer; - flex: 1; - ${({selected}) => selected ? css` - border: 2px solid ${colors.p800}; - color: ${colors.p800}; - ${makeText('p4')}; - ` : css` - border: 2px solid ${colors.g200}; - color: ${colors.g400}; - ${makeText('p5')}; - `} - `, -} - export default OptionSegmentedButton; \ No newline at end of file diff --git a/src/page/invitation/design/option/TemplateOption.tsx b/src/page/invitation/design/option/TemplateOption.tsx index c79d18f..02352e4 100644 --- a/src/page/invitation/design/option/TemplateOption.tsx +++ b/src/page/invitation/design/option/TemplateOption.tsx @@ -9,9 +9,10 @@ import Template, { templateColors, TemplateFontSize, templateFontSizeRecord, - templateFontSizes + templateFontSizes, templateNames } from "@remote/value/Template"; import {LinkMarryFont, linkMarryFonts} from "@designsystem/foundation/text/textType"; +import SegmentedButton from "@designsystem/component/segmentedButton"; interface TemplateOptionProps { template: Template; @@ -28,7 +29,16 @@ function TemplateOption( - + + + {templateNames.map(templateName => ( + { + onChange({...template, templateName}); + }}> + {templateName} + + ))} + @@ -83,6 +93,11 @@ const S = { display: flex; padding: 36px; `, + designWrapper: styled.div` + display: grid; + grid-template-columns: repeat(2, 1fr); /* 가로로 2개의 열 */ + gap: 12px; + `, backgroundColor: { container: styled.div` display: grid; diff --git a/src/remote/value/Template.ts b/src/remote/value/Template.ts index 15230c6..890443a 100644 --- a/src/remote/value/Template.ts +++ b/src/remote/value/Template.ts @@ -1,5 +1,14 @@ import {LinkMarryFont} from "@designsystem/foundation/text/textType"; +export type TemplateName = + '템플릿1' + | '템플릿2' + | '템플릿3' + | '템플릿4' + | '템플릿5' + | '템플릿6' +export const templateNames: TemplateName[] = ['템플릿1', '템플릿2', '템플릿3', '템플릿4', '템플릿5', '템플릿6']; + export type TemplateColor = '#F7F7F2' | '#FBF2F2' @@ -36,7 +45,7 @@ export const templateFontSizeRecord: Record