Skip to content

Commit f27e4cf

Browse files
committed
chore: 머지 후 린트 수정
1 parent 0906bfd commit f27e4cf

File tree

7 files changed

+55
-115
lines changed

7 files changed

+55
-115
lines changed

apps/pyconkr/src/App.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import * as Common from "@frontend/common";
22
import React from "react";
33
import { BrowserRouter, Route, Routes, useLocation } from "react-router-dom";
4-
import { SponsorProvider } from "./contexts/SponsorContext";
54

65
import MainLayout from "./components/layout";
76
import { Test } from "./components/pages/test";
87
import { IS_DEBUG_ENV } from "./consts/index.ts";
8+
import { SponsorProvider } from "./contexts/SponsorContext";
99

1010
// 스폰서를 표시할 페이지 경로 설정
1111
const SPONSOR_VISIBLE_PATHS = ["/"];
@@ -19,10 +19,7 @@ const AppContent = () => {
1919
<Routes>
2020
<Route element={<MainLayout />}>
2121
{IS_DEBUG_ENV && <Route path="/debug" element={<Test />} />}
22-
<Route
23-
path="/pages/:id"
24-
element={<Common.Components.PageIdParamRenderer />}
25-
/>
22+
<Route path="/pages/:id" element={<Common.Components.PageIdParamRenderer />} />
2623
<Route path="*" element={<Common.Components.RouteRenderer />} />
2724
</Route>
2825
</Routes>

apps/pyconkr/src/components/layout/Nav/index.tsx

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,7 @@ const menus = [
6060
];
6161

6262
export default function Nav() {
63-
const {
64-
hoveredMenu,
65-
focusedMenu,
66-
menuRefs,
67-
setHoveredMenu,
68-
setFocusedMenu,
69-
handleKeyDown,
70-
handleBlur,
71-
} = useMenu();
63+
const { hoveredMenu, focusedMenu, menuRefs, setHoveredMenu, setFocusedMenu, handleKeyDown, handleBlur } = useMenu();
7264

7365
const [isSubMenuHovered, setIsSubMenuHovered] = useState(false);
7466
const [hoveredSubItem, setHoveredSubItem] = useState<string | null>(null);
@@ -81,17 +73,12 @@ export default function Nav() {
8173
}, [hoveredMenu, focusedMenu]);
8274

8375
const showSubmenu = !!hoveredMenu || !!focusedMenu || isSubMenuHovered;
84-
const activeMenu =
85-
hoveredMenu ||
86-
focusedMenu ||
87-
(isSubMenuHovered ? lastActiveMenuRef.current : null);
76+
const activeMenu = hoveredMenu || focusedMenu || (isSubMenuHovered ? lastActiveMenuRef.current : null);
8877
const currentMenu = menus.find((menu) => menu.text === activeMenu);
8978

9079
const hasActiveThirdLevel = useMemo(() => {
9180
if (!hoveredSubItem || !currentMenu) return false;
92-
const activeSubItem = currentMenu.subMenu.find(
93-
(item) => item.text === hoveredSubItem
94-
);
81+
const activeSubItem = currentMenu.subMenu.find((item) => item.text === hoveredSubItem);
9582
return activeSubItem?.subMenu && activeSubItem.subMenu.length > 0;
9683
}, [currentMenu, hoveredSubItem]);
9784

@@ -136,9 +123,7 @@ export default function Nav() {
136123
<SecondLevelItem
137124
key={subItem.text}
138125
onMouseEnter={() => setHoveredSubItem(subItem.text)}
139-
className={
140-
hoveredSubItem === subItem.text ? "active" : ""
141-
}
126+
className={hoveredSubItem === subItem.text ? "active" : ""}
142127
>
143128
<a href={subItem.href} tabIndex={0}>
144129
{subItem.text}
@@ -161,8 +146,7 @@ export default function Nav() {
161146
}}
162147
>
163148
{currentMenu.subMenu.map((subItem) => {
164-
const hasThirdLevel =
165-
subItem.subMenu && subItem.subMenu.length > 0;
149+
const hasThirdLevel = subItem.subMenu && subItem.subMenu.length > 0;
166150
const isActive = hoveredSubItem === subItem.text;
167151

168152
if (!hasThirdLevel || !isActive) return null;
@@ -202,10 +186,7 @@ const NavSubContainer = styled.div`
202186
height: auto;
203187
min-height: 150px;
204188
background-color: rgba(255, 255, 255, 0.7);
205-
background-image: linear-gradient(
206-
rgba(255, 255, 255, 0.7),
207-
rgba(255, 255, 255, 0.45)
208-
);
189+
background-image: linear-gradient(rgba(255, 255, 255, 0.7), rgba(255, 255, 255, 0.45));
209190
box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
210191
position: fixed;
211192
left: 0;

apps/pyconkr/src/components/layout/Sponsor/index.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import styled from "@emotion/styled";
22
import { useEffect, useState } from "react";
3+
34
import SponsorExample from "../../../assets/sponsorExample.svg?react";
45
import { useSponsor } from "../../../contexts/SponsorContext";
56

@@ -40,10 +41,7 @@ export default function Sponsor() {
4041
<SponsorGrid role="list" aria-label="후원사 목록 그리드">
4142
{sponsors.map((sponsor) => (
4243
<SponsorItem key={sponsor.id} role="listitem">
43-
<SponsorButton
44-
type="button"
45-
aria-label={`${sponsor.name} 상세 정보 보기`}
46-
>
44+
<SponsorButton type="button" aria-label={`${sponsor.name} 상세 정보 보기`}>
4745
<span className="sr-only">{sponsor.name}</span>
4846
<sponsor.Logo aria-hidden="true" />
4947
</SponsorButton>

apps/pyconkr/src/components/pages/test.tsx

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -27,32 +27,17 @@ const TabList: { [key in SelectedTabType]: React.ReactNode } = {
2727
};
2828

2929
export const Test: React.FC = () => {
30-
const [selectedTab, setSelectedTab] = React.useState<SelectedTabType>(
31-
getTabFromLocalStorage()
32-
);
33-
const selectTab = (tab: SelectedTabType) =>
34-
setSelectedTab(setTabToLocalStorage(tab));
30+
const [selectedTab, setSelectedTab] = React.useState<SelectedTabType>(getTabFromLocalStorage());
31+
const selectTab = (tab: SelectedTabType) => setSelectedTab(setTabToLocalStorage(tab));
3532
const TabButton: React.FC<{ tab: SelectedTabType }> = ({ tab }) => (
36-
<Button
37-
variant={selectedTab === tab ? "contained" : "outlined"}
38-
onClick={() => selectTab(tab)}
39-
>
33+
<Button variant={selectedTab === tab ? "contained" : "outlined"} onClick={() => selectTab(tab)}>
4034
{tab} Test
4135
</Button>
4236
);
4337

4438
return (
45-
<<<<<<< HEAD
4639
<Stack sx={{ width: "100%", height: "100%", minHeight: "100%", flexGrow: 1, py: 2 }} spacing={2}>
4740
<Stack direction="row" spacing={2} sx={{ width: "100%", justifyContent: "center" }}>
48-
=======
49-
<Stack>
50-
<Stack
51-
direction="row"
52-
spacing={2}
53-
sx={{ width: "100%", justifyContent: "center" }}
54-
>
55-
>>>>>>> origin/feature/sponsor
5641
{Object.keys(TabList).map((tab) => (
5742
<TabButton key={tab} tab={tab as SelectedTabType} />
5843
))}

apps/pyconkr/src/contexts/SponsorContext.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,10 @@ interface SponsorProviderProps {
1212
initialVisibility?: boolean;
1313
}
1414

15-
export function SponsorProvider({
16-
children,
17-
initialVisibility = false,
18-
}: SponsorProviderProps) {
15+
export function SponsorProvider({ children, initialVisibility = false }: SponsorProviderProps) {
1916
const [isVisible, setIsVisible] = useState(initialVisibility);
2017

21-
return (
22-
<SponsorContext.Provider value={{ isVisible, setIsVisible }}>
23-
{children}
24-
</SponsorContext.Provider>
25-
);
18+
return <SponsorContext.Provider value={{ isVisible, setIsVisible }}>{children}</SponsorContext.Provider>;
2619
}
2720

2821
export function useSponsor() {

apps/pyconkr/vite.config.mts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,8 @@ export default defineConfig({
1313
plugins: [react(), mdx(), mkcert({ hosts: ["local.dev.pycon.kr"] }), svgr()],
1414
resolve: {
1515
alias: {
16-
"@frontend/common": path.resolve(
17-
__dirname,
18-
"../../packages/common/src/index.ts"
19-
),
20-
"@frontend/shop": path.resolve(
21-
__dirname,
22-
"../../packages/shop/src/index.ts"
23-
),
16+
"@frontend/common": path.resolve(__dirname, "../../packages/common/src/index.ts"),
17+
"@frontend/shop": path.resolve(__dirname, "../../packages/shop/src/index.ts"),
2418
"@apps/pyconkr": path.resolve(__dirname, "./src"),
2519
},
2620
},

eslint.config.js

Lines changed: 38 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -7,53 +7,45 @@ import reactRefresh from "eslint-plugin-react-refresh";
77
import globals from "globals";
88
import tseslint from "typescript-eslint";
99

10-
export default tseslint.config(
11-
js.configs.recommended,
12-
tseslint.configs.recommended,
13-
eslintPluginPrettierRecommended,
14-
{
15-
ignores: ["dist"],
16-
files: ["**/*.{ts,tsx}"],
17-
languageOptions: {
18-
ecmaVersion: 2020,
19-
globals: {
20-
...globals.browser,
21-
React: "readonly",
22-
},
23-
parser: tseslint.parser,
24-
parserOptions: {
25-
project: "./tsconfig.json",
26-
},
27-
},
28-
plugins: {
29-
"react-hooks": reactHooks,
30-
"react-refresh": reactRefresh,
31-
import: importPlugin,
32-
"jsx-a11y": jsxA11y,
10+
export default tseslint.config(js.configs.recommended, tseslint.configs.recommended, eslintPluginPrettierRecommended, {
11+
ignores: ["dist"],
12+
files: ["**/*.{ts,tsx}"],
13+
languageOptions: {
14+
ecmaVersion: 2020,
15+
globals: {
16+
...globals.browser,
17+
React: "readonly",
3318
},
34-
rules: {
35-
...reactHooks.configs.recommended.rules,
36-
"react-refresh/only-export-components": [
37-
"warn",
38-
{ allowConstantExport: true },
39-
],
40-
"prettier/prettier": ["error", { printWidth: 120 }],
41-
"import/order": [
42-
"error",
43-
{
44-
groups: ["builtin", "external", "internal"],
45-
"newlines-between": "always",
46-
alphabetize: { order: "asc" },
47-
},
48-
],
49-
"jsx-a11y/alt-text": "error",
50-
"@typescript-eslint/no-namespace": "off",
19+
parser: tseslint.parser,
20+
parserOptions: {
21+
project: "./tsconfig.json",
5122
},
52-
settings: {
53-
"import/resolver": {
54-
typescript: true,
55-
node: true,
23+
},
24+
plugins: {
25+
"react-hooks": reactHooks,
26+
"react-refresh": reactRefresh,
27+
import: importPlugin,
28+
"jsx-a11y": jsxA11y,
29+
},
30+
rules: {
31+
...reactHooks.configs.recommended.rules,
32+
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
33+
"prettier/prettier": ["error", { printWidth: 120 }],
34+
"import/order": [
35+
"error",
36+
{
37+
groups: ["builtin", "external", "internal"],
38+
"newlines-between": "always",
39+
alphabetize: { order: "asc" },
5640
},
41+
],
42+
"jsx-a11y/alt-text": "error",
43+
"@typescript-eslint/no-namespace": "off",
44+
},
45+
settings: {
46+
"import/resolver": {
47+
typescript: true,
48+
node: true,
5749
},
58-
}
59-
);
50+
},
51+
});

0 commit comments

Comments
 (0)