Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .env.development
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ NEXT_PUBLIC_AMPLITUDE_API_KEY=
NEXT_PUBLIC_KAKAO_TALK_PLUGIN_KEY=
NEXT_PUBLIC_ADMIN_API_URL=https://api-dev-api.sopt.org/v2
NEXT_PUBLIC_ADMIN_API_KEY=
NEXT_PUBLIC_AUTH_API_URL=https://auth-dev-api.sopt.org
NEXT_PUBLIC_OPERATION_API_URL=https://operation-api-dev.sopt.org
NEXT_PUBLIC_AUTH_API_URL=https://auth-api-dev.sopt.org
NEXT_PUBLIC_CREW_API_URL=https://crew-dev.sopt.org
NEXT_PUBLIC_CREW_API_URL=https://crew-dev.sopt.org
8 changes: 7 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,15 @@ jobs:
- name: Build
run: yarn build && yarn next export

- name: Prepare deployment package
run: |
mkdir -p deploy
cp -r out/* deploy/
cp -r functions deploy/

- uses: actions/upload-artifact@v4
with:
name: built-app
path: out
path: deploy
if-no-files-found: error
retention-days: 7
19 changes: 19 additions & 0 deletions functions/.well-known/apple-app-site-association.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
const APPLE_APP_SITE_ASSOCIATION = `{
"applinks": {
"apps": [],
"details": [
{
"appID": "95YWTT5L8K.com.sopt-stamp-iOS.release",
"paths": ["*"]
}
]
}
}`;

export const onRequest: PagesFunction = () => {
return new Response(APPLE_APP_SITE_ASSOCIATION, {
headers: {
'Content-Type': 'application/json',
},
});
};
21 changes: 21 additions & 0 deletions functions/.well-known/assetlinks.json.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
const ASSETLINKS_JSON = `[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "org.sopt.official",
"sha256_cert_fingerprints": [
"29:23:1F:E3:7A:FD:76:9C:58:CA:F3:E2:D9:7C:A1:69:CF:04:A8:6E:5B:8A:C6:56:6A:6F:E8:FD:D8:FF:47:43",
"30:8A:35:1F:E1:88:94:6F:BC:E9:B2:D5:FC:2F:9B:F2:10:35:2A:43:B8:36:03:8B:C4:1B:EA:51:23:76:1C:00"
]
}
}
]`;

export const onRequest: PagesFunction = () => {
return new Response(ASSETLINKS_JSON, {
headers: {
'Content-Type': 'application/json',
},
});
};
33 changes: 13 additions & 20 deletions public/.well-known/apple-app-site-association
Original file line number Diff line number Diff line change
@@ -1,20 +1,13 @@
{\rtf1\ansi\ansicpg1252\cocoartf2822
\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\froman\fcharset0 Times-Roman;}
{\colortbl;\red255\green255\blue255;\red0\green0\blue0;}
{\*\expandedcolortbl;;\cssrgb\c0\c0\c0;}
\paperw11900\paperh16840\margl1440\margr1440\vieww11520\viewh8400\viewkind0
\deftab720
\pard\pardeftab720\partightenfactor0

\f0\fs24 \cf0 \expnd0\expndtw0\kerning0
\{\
\'93applinks\'94: \{\
\'93apps\'94: [],\
\'93details\'94: [\
\{\
\'93appID\'94: \'9395YWTT5L8K.com.sopt-stamp-iOS.release\'94,\
\'93paths\'94: [\'93*\'94]\
\}\
]\
\}\
\}}
{
"applinks": {
"apps": [],
"details": [
{
"appID": "95YWTT5L8K.com.sopt-stamp-iOS.release",
"paths": [
"*"
]
}
]
}
}
5 changes: 5 additions & 0 deletions src/api/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,17 @@ export const handleTokenError = async (error: AxiosError<unknown>) => {
// 개인정보 처리방침 페이지는 로그인 필요 없음, 구글 정책상 오픈
return Promise.reject(error);
}
// 앱 딥링크를 위한 .well-known 경로는 인증 체크 제외
if (window.location.pathname.startsWith('/.well-known')) {
return Promise.reject(error);
}
/** 토큰이 없으면 refresh 시도하지 않고 바로 intro로 이동 */
const currentToken = tokenStorage.get();
if (currentToken === null && window.location.pathname !== '/intro') {
window.location.replace('/intro');
throw new Error('토큰이 없습니다.');
}

try {
const { data } = await axiosAuthInstance.post<{ data: { accessToken: string } }>(
`/api/v1/auth/refresh/web`,
Expand Down
4 changes: 2 additions & 2 deletions src/components/members/main/MemberList/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { colors } from '@sopt-makers/colors';
import { fonts } from '@sopt-makers/fonts';
import { IconSwitchVertical } from '@sopt-makers/icons';
import { SearchField } from '@sopt-makers/ui';
import { Spacing } from '@toss/emotion-utils';
import { debounce, uniq } from 'lodash-es';
import Link from 'next/link';
import { useRouter } from 'next/router';
Expand Down Expand Up @@ -45,7 +46,6 @@ import { useRunOnce } from '@/hooks/useRunOnce';
import IconDiagonalArrow from '@/public/icons/icon-diagonal-arrow.svg';
import { MB_BIG_MEDIA_QUERY } from '@/styles/mediaQuery';
import { MOBILE_MEDIA_QUERY } from '@/styles/mediaQuery';
import { Spacing } from '@toss/emotion-utils';
const PAGE_LIMIT = 24;

interface MemberListProps {
Expand Down Expand Up @@ -492,7 +492,7 @@ const MemberList: FC<MemberListProps> = ({ banner }) => {
const badges = sorted
.filter((activity) => activity.generation && activity.part)
.map((activity) => ({
content: `${activity.generation}기 ${activity.part}`,
content: `${activity.generation}기 ${activity.team || activity.part}`,
isActive: activity.generation === LATEST_GENERATION,
Comment on lines -495 to 496
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
    "id": 1898,
    "generation": 35,
    "part": "",
    "team": "미디어팀"
}

미디어팀일 경우 미디어팀으로 표기될 것 같아요!

}));

Expand Down
Loading