Skip to content

Commit 8f8a518

Browse files
committed
Merge branch 'develop'
2 parents 0998482 + ac0fceb commit 8f8a518

File tree

16 files changed

+11336
-15401
lines changed

16 files changed

+11336
-15401
lines changed

.env.development

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
REACT_APP_PYCONKR_API=https://api-dev.pycon.kr
1+
REACT_APP_PYCONKR_API=https://api-dev.pycon.kr
2+
REACT_APP_PYCONKR_SHOP_API=https://shop-api.dev.pycon.kr

.env.production

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
REACT_APP_PYCONKR_API=https://api.pycon.kr
2+
REACT_APP_PYCONKR_SHOP_API=https://shop-api.pycon.kr

.github/workflows/dev-cd.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636

3737
- name: Build
3838
run: |
39-
yarn build:dev
39+
yarn build
4040
4141
- name: Deploy
4242
run: |

package.json

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,9 @@
3636
"web-vitals": "^2.1.4"
3737
},
3838
"scripts": {
39-
"start": "env-cmd -f ./.env.local react-scripts start",
40-
"start:dev": "env-cmd -f ./.env.development react-scripts start",
39+
"start": "env-cmd -f ./.env.development react-scripts start",
4140
"start:prod": "env-cmd -f ./.env.production react-scripts start",
42-
"build": "env-cmd -f ./.env.local react-scripts build --profile",
43-
"build:dev": "env-cmd -f ./.env.development react-scripts build --profile",
41+
"build": "env-cmd -f ./.env.development react-scripts build --profile",
4442
"build:prod": "env-cmd -f ./.env.production react-scripts build"
4543
},
4644
"eslintConfig": {

scripts/set_dev.sh

Lines changed: 0 additions & 1 deletion
This file was deleted.

scripts/set_prod.sh

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/api/sponsor.ts

Lines changed: 59 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,46 @@
1-
import { getErrorMessage } from "api"
2-
import instance from "lib/axios"
3-
import { APISponsor, APISponsorBenefit, APISponsorLevel, APISponsorLevelWithSponsor } from "models/api/sponsor"
4-
import { Sponsor, SponsorBenefit, SponsorLevel, SponsorLevelWithSponsor } from "models/sponsor"
5-
1+
import { getErrorMessage } from "api";
2+
import instance from "lib/axios";
3+
import {
4+
APIPatron,
5+
APISponsor,
6+
APISponsorBenefit,
7+
APISponsorLevel,
8+
APISponsorLevelWithSponsor,
9+
} from "models/api/sponsor";
10+
import {
11+
Patron,
12+
Sponsor,
13+
SponsorBenefit,
14+
SponsorLevel,
15+
SponsorLevelWithSponsor,
16+
} from "models/sponsor";
617

718
export function detailSponsor(id: string): Promise<Sponsor> {
819
return new Promise((resolve, reject) => {
9-
instance.get<APISponsor>(`/2024/sponsors/list/${id}/`).then(response => {
10-
resolve(Sponsor.fromAPI(response.data));
11-
}).catch(error => {
12-
console.error(error);
13-
reject(getErrorMessage(error));
14-
})
20+
instance
21+
.get<APISponsor>(`/2024/sponsors/list/${id}/`)
22+
.then((response) => {
23+
resolve(Sponsor.fromAPI(response.data));
24+
})
25+
.catch((error) => {
26+
console.error(error);
27+
reject(getErrorMessage(error));
28+
});
1529
return;
16-
})
30+
});
1731
}
1832

1933
export function listSponsorLevels(): Promise<SponsorLevel[]> {
2034
return new Promise((resolve, reject) => {
21-
instance.get<APISponsorLevel[]>("/2024/sponsors/levels").then((response) => {
22-
resolve(SponsorLevel.fromAPIs(response.data));
23-
}).catch((error) => {
24-
console.error(error);
25-
reject(getErrorMessage(error));
26-
})
35+
instance
36+
.get<APISponsorLevel[]>("/2024/sponsors/levels")
37+
.then((response) => {
38+
resolve(SponsorLevel.fromAPIs(response.data));
39+
})
40+
.catch((error) => {
41+
console.error(error);
42+
reject(getErrorMessage(error));
43+
});
2744
return;
2845
});
2946
}
@@ -46,7 +63,6 @@ export function listSponsorLevelWithSponsor(): Promise<SponsorLevelWithSponsor[]
4663
instance
4764
.get<APISponsorLevelWithSponsor[]>("/2024/sponsors/levels/with-sponsor/")
4865
.then((response) => {
49-
console.log("debug", response);
5066
resolve(SponsorLevelWithSponsor.fromAPIs(response.data));
5167
})
5268
.catch((error) => {
@@ -58,11 +74,28 @@ export function listSponsorLevelWithSponsor(): Promise<SponsorLevelWithSponsor[]
5874

5975
export function listSponsorBenefits(): Promise<SponsorBenefit[]> {
6076
return new Promise((resolve, reject) => {
61-
instance.get<APISponsorBenefit[]>("/2024/sponsors/benefits/").then(response => {
62-
resolve(SponsorBenefit.fromAPIs(response.data));
63-
}).catch(error => {
64-
console.error(error);
65-
reject(getErrorMessage(error));
66-
})
67-
})
77+
instance
78+
.get<APISponsorBenefit[]>("/2024/sponsors/benefits/")
79+
.then((response) => {
80+
resolve(SponsorBenefit.fromAPIs(response.data));
81+
})
82+
.catch((error) => {
83+
console.error(error);
84+
reject(getErrorMessage(error));
85+
});
86+
});
87+
}
88+
89+
export function listPatrons(): Promise<Patron[]> {
90+
return new Promise((resolve, reject) => {
91+
instance
92+
.get<APIPatron[]>(`${process.env.REACT_APP_PYCONKR_SHOP_API}/v1/ext/patron/`)
93+
.then((response) => {
94+
resolve(Patron.fromAPIs(response.data));
95+
})
96+
.catch((error) => {
97+
console.error(error);
98+
reject(getErrorMessage(error));
99+
});
100+
});
68101
}

src/components/Footer/SponsorTable.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ const LogoImage = styled.img`
2828
background: white;
2929
color: black;
3030
min-width: 15vw;
31+
max-height: 100%;
3132
`;
3233

3334
const SponsorCard = styled.div`
@@ -48,6 +49,10 @@ const SponsorCard = styled.div`
4849
display: grid;
4950
grid-gap: 1.5rem;
5051
flex: auto;
52+
53+
& > a {
54+
max-height: 20rem;
55+
}
5156
}
5257
5358
@media only screen and (max-width: 810px) {

src/components/Nav/menus.ts

Lines changed: 45 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
import { useDispatch } from "react-redux"
1+
import { useDispatch } from "react-redux";
22

3-
import { openGlobalDialog, setLanguage } from "store/Core"
4-
import { DIALOG_CONST_PROGRAM_NOT_HELD_ON_2024 } from "store/Core/dialog"
3+
import { openGlobalDialog, setLanguage } from "store/Core";
4+
import { DIALOG_CONST_PROGRAM_NOT_HELD_ON_2024 } from "store/Core/dialog";
55

66
export type MenuElementOnClickArgType = {
7-
setOpenMenu: React.Dispatch<React.SetStateAction<boolean>>
8-
navigate?: (path: string) => void
9-
dispatch: ReturnType<typeof useDispatch>
10-
}
7+
setOpenMenu: React.Dispatch<React.SetStateAction<boolean>>;
8+
navigate?: (path: string) => void;
9+
dispatch: ReturnType<typeof useDispatch>;
10+
};
1111

1212
export type MenuElementType = {
13-
name: string
14-
style?: React.CSSProperties
15-
path?: string
16-
onClick?: (_: MenuElementOnClickArgType) => void
17-
}
13+
name: string;
14+
style?: React.CSSProperties;
15+
path?: string;
16+
onClick?: (_: MenuElementOnClickArgType) => void;
17+
};
1818

19-
export type MenuType = { [key: string]: MenuElementType & { sub?: MenuElementType[] } }
19+
export type MenuType = { [key: string]: MenuElementType & { sub?: MenuElementType[] } };
2020

2121
const Menus: MenuType = {
2222
about: {
@@ -29,8 +29,11 @@ const Menus: MenuType = {
2929
{
3030
name: "파이콘 한국 행동 강령",
3131
onClick: ({ setOpenMenu }) => {
32-
setOpenMenu(false)
33-
window.open("https://pythonkr.github.io/pycon-code-of-conduct/ko/coc/a_intent_and_purpose.html", "_blank")
32+
setOpenMenu(false);
33+
window.open(
34+
"https://pythonkr.github.io/pycon-code-of-conduct/ko/coc/a_intent_and_purpose.html",
35+
"_blank"
36+
);
3437
},
3538
},
3639
{
@@ -63,33 +66,33 @@ const Menus: MenuType = {
6366
program: {
6467
name: "프로그램",
6568
onClick: ({ setOpenMenu, dispatch }) => {
66-
setOpenMenu(false)
67-
dispatch(openGlobalDialog(DIALOG_CONST_PROGRAM_NOT_HELD_ON_2024))
68-
}
69+
setOpenMenu(false);
70+
dispatch(openGlobalDialog(DIALOG_CONST_PROGRAM_NOT_HELD_ON_2024));
71+
},
6972
},
7073
ticket: {
7174
name: "티켓 구매",
7275
onClick: ({ setOpenMenu }) => {
73-
setOpenMenu(false)
74-
window.open("https://shop.pycon.kr/ticket", "_blank")
75-
}
76+
setOpenMenu(false);
77+
window.open("https://shop.pycon.kr/ticket", "_blank");
78+
},
7679
},
7780
session: {
7881
name: "세션",
7982
sub: [
8083
{
8184
name: "세션 목록",
8285
onClick: ({ setOpenMenu, navigate }) => {
83-
navigate?.("/session")
84-
setOpenMenu(false)
85-
}
86+
navigate?.("/session");
87+
setOpenMenu(false);
88+
},
8689
},
8790
{
8891
name: "세션 시간표",
8992
onClick: ({ setOpenMenu, navigate }) => {
90-
navigate?.("/session/timetable")
91-
setOpenMenu(false)
92-
}
93+
navigate?.("/session/timetable");
94+
setOpenMenu(false);
95+
},
9396
},
9497
],
9598
},
@@ -98,12 +101,12 @@ const Menus: MenuType = {
98101
sub: [
99102
{
100103
name: "후원사 안내",
101-
path: "/sponsoring/sponsor/prospectus"
104+
path: "/sponsoring/sponsor/prospectus",
105+
},
106+
{
107+
name: "개인 후원자",
108+
path: "/sponsoring/patron",
102109
},
103-
// {
104-
// name: "개인 후원자",
105-
// path: "/sponsoring/patron",
106-
// },
107110
// {
108111
// name: "후원사 혜택 안내",
109112
// path: "/sponsoring/sponsor/benefit",
@@ -128,19 +131,19 @@ const Menus: MenuType = {
128131
{
129132
name: "한국어",
130133
onClick: ({ setOpenMenu, dispatch }) => {
131-
setOpenMenu(false)
132-
dispatch(setLanguage("KOR"))
133-
}
134+
setOpenMenu(false);
135+
dispatch(setLanguage("KOR"));
136+
},
134137
},
135138
{
136139
name: "English",
137140
onClick: ({ setOpenMenu, dispatch }) => {
138-
setOpenMenu(false)
139-
dispatch(setLanguage("ENG"))
140-
}
141+
setOpenMenu(false);
142+
dispatch(setLanguage("ENG"));
143+
},
141144
},
142-
]
143-
}
144-
} as const
145+
],
146+
},
147+
} as const;
145148

146-
export default Menus
149+
export default Menus;

0 commit comments

Comments
 (0)