-
Notifications
You must be signed in to change notification settings - Fork 4
fix QA #2077
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix QA #2077
Changes from all commits
cb9e687
d44f465
0514eea
84cb34a
e2c64e7
3e859ca
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,6 +8,7 @@ import Link from 'next/link'; | |
| import { useRouter } from 'next/router'; | ||
| import React, { ChangeEvent, FC, ReactNode, useEffect, useMemo, useState } from 'react'; | ||
|
|
||
| import { useGetMemberOfMe } from '@/api/endpoint/members/getMemberOfMe'; | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. π§© Analysis chainπ Script executed: # Find the MemberList component
find . -type f -name "index.tsx" -path "*MemberList*" 2>/dev/null | head -20Repository: sopt-makers/sopt-playground-frontend Length of output: 130 π Script executed: # Also search for getMemberOfMe hook
find . -type f -name "*getMemberOfMe*" 2>/dev/nullRepository: sopt-makers/sopt-playground-frontend Length of output: 123 π Script executed: # Get general structure
git ls-files | grep -E "(members|MemberList)" | head -20Repository: sopt-makers/sopt-playground-frontend Length of output: 961 π Script executed: cat -n ./src/components/members/main/MemberList/index.tsx | head -120Repository: sopt-makers/sopt-playground-frontend Length of output: 5560 π Script executed: cat -n ./src/api/endpoint/members/getMemberOfMe.tsRepository: sopt-makers/sopt-playground-frontend Length of output: 1182 π Script executed: cat -n ./src/components/members/main/MemberList/index.tsx | sed -n '90,150p'Repository: sopt-makers/sopt-playground-frontend Length of output: 2849 π Script executed: # Check if there's more context about isHydrated usage
cat -n ./src/components/members/main/MemberList/index.tsx | grep -A 5 -B 5 "isHydrated"Repository: sopt-makers/sopt-playground-frontend Length of output: 1077 π Script executed: cat -n ./src/components/members/main/MemberList/index.tsx | grep -A 10 "setIsHydrated"Repository: sopt-makers/sopt-playground-frontend Length of output: 830 π Script executed: # Get the full file to see all useEffect hooks
wc -l ./src/components/members/main/MemberList/index.tsxRepository: sopt-makers/sopt-playground-frontend Length of output: 134 π Script executed: cat -n ./src/components/members/main/MemberList/index.tsx | sed -n '150,158p'Repository: sopt-makers/sopt-playground-frontend Length of output: 352
Line 93μμ ν΄κ²°μ± :
- const { data: memberOfMeData } = useGetMemberOfMe();
+ const { data: memberOfMeData } = useGetMemberOfMe({ enabled: isHydrated });
export const useGetMemberOfMe = (options?: UseQueryOptions) => {
return useQuery({
queryKey: ['getMemberOfMe'],
queryFn: async () => {
const data = await getMemberOfMe.request();
return data;
},
...options,
});
};π€ Prompt for AI Agents |
||
| import { Profile } from '@/api/endpoint_LEGACY/members/type'; | ||
| import BottomSheetSelect from '@/components/coffeechat/upload/CoffeechatForm/BottomSheetSelect'; | ||
| import EmptyView from '@/components/common/EmptyView'; | ||
|
|
@@ -89,9 +90,10 @@ const MemberList: FC<MemberListProps> = ({ banner }) => { | |
| const { addQueryParamsToUrl } = usePageQueryParams({ | ||
| skipNull: true, | ||
| }); | ||
| const { data: memberOfMeData } = useGetMemberOfMe(); | ||
|
|
||
| const isEmpty = memberProfileData?.pages[0].members.length === 0; | ||
|
|
||
| const canViewWorkPreference = memberOfMeData?.generation === LATEST_GENERATION; | ||
| const profiles = useMemo( | ||
| () => | ||
| memberProfileData?.pages.map((page) => | ||
|
|
@@ -239,7 +241,8 @@ const MemberList: FC<MemberListProps> = ({ banner }) => { | |
| onReset={handleSearchReset} | ||
| /> | ||
|
|
||
| <BannerWrapper> | ||
| {/* TODO: TL리μ€νΈ μΆν λ°°ν¬ */} | ||
| {/* <BannerWrapper> | ||
| <Banner | ||
| src={'/icons/img/banner_TL_list_tablet.png'} | ||
| alt='TL List Link' | ||
|
|
@@ -250,11 +253,13 @@ const MemberList: FC<MemberListProps> = ({ banner }) => { | |
| alt='TL List Link' | ||
| onClick={() => router.push(playgroundLink.teamLeaderList())} | ||
| /> | ||
| </BannerWrapper> | ||
| </BannerWrapper> */} | ||
|
|
||
| <Responsive only='mobile'> | ||
| <WorkPreferenceMatchedMemberList /> | ||
| </Responsive> | ||
| {canViewWorkPreference && ( | ||
| <Responsive only='mobile'> | ||
| <WorkPreferenceMatchedMemberList /> | ||
| </Responsive> | ||
| )} | ||
| <StyledMobileFilterWrapper> | ||
| <BottomSheetSelect | ||
| options={GENERATION_OPTIONS} | ||
|
|
@@ -322,19 +327,21 @@ const MemberList: FC<MemberListProps> = ({ banner }) => { | |
| )} | ||
| </Responsive> | ||
| </div> | ||
| <Responsive asChild only='desktop'> | ||
| {/* <Responsive asChild only='desktop'> | ||
| <BannerWrapper> | ||
| <Banner | ||
| src={'/icons/img/banner_TL_list_desktop.png'} | ||
| alt='TL List Link' | ||
| onClick={() => router.push(playgroundLink.teamLeaderList())} | ||
| /> | ||
| </BannerWrapper> | ||
| </Responsive> | ||
| </Responsive> */} | ||
| <StyledMain> | ||
| <Responsive only='desktop'> | ||
| <WorkPreferenceMatchedMemberList /> | ||
| </Responsive> | ||
| {canViewWorkPreference && ( | ||
| <Responsive only='desktop'> | ||
| <WorkPreferenceMatchedMemberList /> | ||
| </Responsive> | ||
| )} | ||
| {banner && ( | ||
| <Responsive | ||
| only='desktop' | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,7 +17,7 @@ const cardComponentWidth = 316; | |
|
|
||
| const TeamLeadersPage = () => { | ||
| const { data: tlMemberList } = useGetTLMember(); | ||
| console.log(tlMemberList); | ||
|
|
||
| const [selectedPart, setSelectedPart] = useState<SelectedPart>('APP'); | ||
| return ( | ||
| <AuthRequired> | ||
|
|
@@ -26,7 +26,7 @@ const TeamLeadersPage = () => { | |
| <TitleWrapper> | ||
| <Text typography='SUIT_32_B'>37κΈ° μ±μΌ TL ν보λ₯Ό λ§λ보μΈμπ₯</Text> | ||
| <Text typography='SUIT_18_M' color={colors.gray200}> | ||
| μ λ ¬ μμλ μ μν λλ§λ€ 무μμλ‘ λ°λμ΄μ. | ||
| μ λ ¬ μμλ μ΄λ¦ κΈ°μ€ κ°λλ€ μμ΄μμ. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. UI ν μ€νΈμ μ€μ μ λ ¬ λ‘μ§μ΄ μΌμΉνμ§ μμ΅λλ€. Line 29μ ν
μ€νΈλ "μ΄λ¦ κΈ°μ€ κ°λλ€ μ"μΌλ‘ μ λ ¬λμ΄ μλ€κ³ μ¬μ©μμκ² μλ¦¬κ³ μμ§λ§, lines 42-54μ λ λλ§ λ‘μ§μλ μ€μ μ λ ¬ ꡬνμ΄ μμ΅λλ€. νμ¬ μ½λλ λ§μ½ APIκ° μ λ ¬λ λ°μ΄ν°λ₯Ό λ°ννλλΌλ, νλ‘ νΈμλμμ λͺ μμ μΌλ‘ μ λ ¬μ 보μ₯νμ§ μμΌλ©΄:
λ€μκ³Ό κ°μ΄ λͺ μμ μΈ μ λ ¬ λ‘μ§μ μΆκ°νμΈμ: <TeamLeaderCardsWrapper>
{tlMemberList
?.filter((tlMember) => tlMember.serviceType === selectedPart)
+ .sort((a, b) => a.name.localeCompare(b.name, 'ko-KR'))
.map((tlMember) => (
<TeamLeaderCard
id={tlMember.id}
profileImageUrl={tlMember.profileImage}
key={tlMember.id}
name={tlMember.name}
university={tlMember.university}
activities={tlMember.activities}
introduction={tlMember.introduction}
/>
))}
</TeamLeaderCardsWrapper>Also applies to: 42-54 π€ Prompt for AI Agents |
||
| </Text> | ||
| </TitleWrapper> | ||
| <ChipWrapper> | ||
|
|
@@ -38,7 +38,7 @@ const TeamLeadersPage = () => { | |
| </Chip> | ||
| </ChipWrapper> | ||
|
|
||
| <TeamLeaderCardsWrapper> | ||
| {/* <TeamLeaderCardsWrapper> | ||
| {tlMemberList | ||
| ?.filter((tlMember) => tlMember.serviceType === selectedPart) | ||
| .map((tlMember) => ( | ||
|
|
@@ -52,7 +52,7 @@ const TeamLeadersPage = () => { | |
| introduction={tlMember.introduction} | ||
| /> | ||
| ))} | ||
| </TeamLeaderCardsWrapper> | ||
| </TeamLeaderCardsWrapper> */} | ||
| </StyledMain> | ||
| </StyledContainer> | ||
| </AuthRequired> | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
π§© Analysis chain
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 427
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 197
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 771
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 4343
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 894
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 192
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 920
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 1420
π Script executed:
Repository: sopt-makers/sopt-playground-frontend
Length of output: 403
λͺ¨λ°μΌ ν΄νμ΄ λ°μ€ν¬ν±μμλ λ λλλ λ¬Έμ +
TooltipWrapperλ―Έμ¬μ©λΌμΈ 87-93μμ
ResponsiveλνΌκ° μ£Όμ μ²λ¦¬λΌMobileTooltipWrapperκ° λͺ¨λ λ·°ν¬νΈμμ λ ΈμΆλ©λλ€. λν λΌμΈ 180μμ μ μλTooltipWrapperλ λΌμΈ 96-102μ μ£Όμ μ²λ¦¬λ μ½λμλ§ ν¬ν¨λμ΄ μ€μ λ‘λ λ λλ§λμ§ μμ΅λλ€.κΆμ₯: (1) λͺ¨λ°μΌ/λ°μ€ν¬ν± λΆκΈ°λ₯Ό μν΄
ResponsiveλνΌλ₯Ό 볡ꡬνκ±°λ (2) νλμ ν΄ν μ»΄ν¬λνΈλ‘ ν΅ν©ν ν λ―Έμ¬μ©TooltipWrapperμ μμ μ£Όμ λΈλ‘μ μ κ±°ν΄μ£ΌμΈμ. μΆκ°λ‘ λΌμΈ 82μ λ²νΌμtype="button"κ³Όaria-labelμμ±μ μΆκ°νμκΈΈ κΆμ₯ν©λλ€.π€ Prompt for AI Agents