From 5614e44df263e73fad2018eb76a8f090014b07dc Mon Sep 17 00:00:00 2001 From: kikiyeom Date: Sun, 28 Jan 2024 09:44:13 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Feat:=20=EB=A7=88=EC=8A=A4=ED=84=B0=20?= =?UTF-8?q?=EA=B3=84=EC=A0=95=EC=9D=80=20=EB=AA=A8=EB=93=A0=20=ED=94=8C?= =?UTF-8?q?=EB=9E=AB=ED=8F=BC=EC=9D=84=20=EC=A1=B0=ED=9A=8C=20=EB=B0=8F=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/FaqPage/FaqPage.page.tsx | 36 ++++++++++++++++-------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/pages/FaqPage/FaqPage.page.tsx b/src/pages/FaqPage/FaqPage.page.tsx index 68526c94..6d08fde1 100644 --- a/src/pages/FaqPage/FaqPage.page.tsx +++ b/src/pages/FaqPage/FaqPage.page.tsx @@ -1,9 +1,9 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useMemo, useState } from 'react'; import { useRecoilValue } from 'recoil'; import { OutputData } from '@editorjs/editorjs'; import { Editor, EditorAside } from '@/components'; import * as Styled from './FaqPage.styled'; -import { $teams, $profile } from '@/store'; +import { $teams, $profile, $isMaster } from '@/store'; import { SelectSize } from '@/components/common/Select/Select.component'; import { decodeHTMLEntities, @@ -28,22 +28,26 @@ const FaqPage = () => { const { handleAddToast } = useToast(); const teams = useRecoilValue($teams); - const teamOptions = teams.map(({ teamId, name }) => ({ - value: teamId.toString(), - label: name, - })); + const teamOptions = useMemo(() => { + return teams.map(({ name }) => ({ + value: name.toLowerCase(), + label: name, + })); + }, [teams]); const myTeamName = useRecoilValue($profile)[0]; + const isMaster = useRecoilValue($isMaster); const isStaffUser = myTeamName === Team.mashUp || myTeamName === Team.branding; - const getTeamSelectOptions = () => { + const teamSelectOptions = useMemo(() => { + if (isMaster) { + return [commonSelectOption, ...teamOptions]; + } const myTeamOptionObject = teamOptions.find( ({ label }) => label.toUpperCase() === myTeamName.toUpperCase(), ); return [myTeamOptionObject ?? commonSelectOption]; - }; - - const teamSelectOptions = getTeamSelectOptions(); + }, [teamOptions]); const handleUpdateButtonClick = async () => { const originalOutputData = getLocalStorageData(EDITOR_ID); @@ -84,13 +88,8 @@ const FaqPage = () => { }; useEffect(() => { - const myTeamSelectOptions = teamSelectOptions[0] ?? commonSelectOption; - - if (myTeamSelectOptions.value === commonSelectOption.value) { - setSelectedPlatform(commonSelectOption.value); - } else { - setSelectedPlatform(myTeamSelectOptions.label.toLowerCase()); - } + const myTeamSelectOption = teamSelectOptions[0] ?? commonSelectOption; + setSelectedPlatform(myTeamSelectOption.value); }, [teamSelectOptions]); useEffect(() => { @@ -126,6 +125,9 @@ const FaqPage = () => { defaultValue={teamSelectOptions[0]} size={SelectSize.sm} options={teamSelectOptions} + onChangeOption={(option) => { + setSelectedPlatform(option.value); + }} /> } rightActionButton={{ From 82e1dfed47f36c580828ef64c40917c1e47bd8e9 Mon Sep 17 00:00:00 2001 From: kikiyeom Date: Sun, 28 Jan 2024 17:18:45 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Feat:=20=EB=B8=8C=EB=9E=9C=EB=94=A9=20?= =?UTF-8?q?=EC=8A=A4=ED=83=AD=EC=9D=84=20=EB=A7=88=EC=8A=A4=ED=84=B0=20?= =?UTF-8?q?=EA=B6=8C=ED=95=9C=EC=97=90=20=EC=B6=94=EA=B0=80=ED=95=98?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store/login.ts | 10 +++++++--- src/types/dto/adminMember.ts | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/store/login.ts b/src/store/login.ts index 3f9b1056..b77c971a 100644 --- a/src/store/login.ts +++ b/src/store/login.ts @@ -1,8 +1,7 @@ import { atom } from 'recoil'; -import { LoginResponse, MemberPositionType } from '@/types/dto'; +import { LoginResponse, MemberPosition, MemberPositionType } from '@/types/dto'; import { TeamType, RoleType } from '@/components/common/UserProfile/UserProfile.component'; import { selectorWithRefresher } from './recoil'; -import { ScoreType } from '@/components/ActivityScore'; export const $me = atom({ key: 'me', @@ -38,7 +37,12 @@ export const $profile = selectorWithRefresher<[string, string, MemberPositionTyp }, }); -const MASTER_SCORE_TYPES = [ScoreType.MASHUP_LEADER, ScoreType.MASHUP_SUBLEADER] as string[]; +const MASTER_SCORE_TYPES = [ + MemberPosition.mashupLeader, + MemberPosition.mashupSubLeader, + MemberPosition.brandingLeader, + MemberPosition.brandingSubLeader, +] as string[]; export const $isMaster = selectorWithRefresher({ key: 'isMaster', diff --git a/src/types/dto/adminMember.ts b/src/types/dto/adminMember.ts index 42f8e92e..50739b32 100644 --- a/src/types/dto/adminMember.ts +++ b/src/types/dto/adminMember.ts @@ -5,7 +5,8 @@ export const MemberPosition = { mashupSubLeader: 'MASHUP_SUBLEADER', brandingLeader: 'BRANDING_LEADER', brandingSubLeader: 'BRANDING_SUBLEADER', - brandingMember: 'BRANDING_MEMBER', + brandingHelper: 'BRANDING_HELPER', + brandingMember: 'BRANDING_MEMBER', // deprecated springLeader: 'SPRING_LEADER', springSubLeader: 'SPRING_SUBLEADER', springHelper: 'SPRING_HELPER', From 6299531a7baf3071fbe972bad938980f5eeffdc0 Mon Sep 17 00:00:00 2001 From: kikiyeom Date: Sun, 28 Jan 2024 17:45:34 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Fix:=20=EB=94=94=ED=8E=9C=EB=8D=98=EC=8B=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=ED=95=98=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/FaqPage/FaqPage.page.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/FaqPage/FaqPage.page.tsx b/src/pages/FaqPage/FaqPage.page.tsx index 6d08fde1..2161a4e3 100644 --- a/src/pages/FaqPage/FaqPage.page.tsx +++ b/src/pages/FaqPage/FaqPage.page.tsx @@ -47,7 +47,7 @@ const FaqPage = () => { ({ label }) => label.toUpperCase() === myTeamName.toUpperCase(), ); return [myTeamOptionObject ?? commonSelectOption]; - }, [teamOptions]); + }, [teamOptions, myTeamName, isMaster]); const handleUpdateButtonClick = async () => { const originalOutputData = getLocalStorageData(EDITOR_ID);