Skip to content

Commit cb2a300

Browse files
committed
fix
1 parent 7ca581d commit cb2a300

File tree

5 files changed

+32
-48
lines changed

5 files changed

+32
-48
lines changed

packages/tests/index.ts

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

packages/tests/package.json

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,7 @@
11
{
22
"name": "tests",
3-
"module": "index.ts",
43
"type": "module",
54
"private": true,
6-
"devDependencies": {
7-
"@types/bun": "^1.2.19"
8-
},
9-
"peerDependencies": {
10-
"typescript": "^5"
11-
},
125
"dependencies": {
136
"@packages/class_data": "workspace:*",
147
"@packages/models": "workspace:*",
Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,52 @@
1-
/*
2-
* セメスターフィルターのコンポーネント
3-
*/
4-
5-
import type { ClassType } from "@packages/models";
6-
import type React from "react";
1+
import type { ClassSeries } from "@packages/models";
72
import { FlagButton } from "../UI/FlagButton.tsx";
83

9-
/**
10-
* クラス種別フィルターのプロパティ
11-
*/
12-
interface SemesterProp {
13-
selectedClassTypes?: ClassType[];
14-
setSelectedClassTypes: (classType: ClassType[]) => void;
15-
}
16-
17-
const ClassType1: ClassType[] = ["基礎", "要求", "主題", "展開"];
18-
const ClassType2: ClassType[] = ["L", "A", "B", "C", "D", "E", "F"];
4+
const ClassType: ClassSeries[] = ["基礎", "要求", "主題", "展開"];
5+
const GeneralSeries = ["L", "A", "B", "C", "D", "E", "F"] as const;
196

207
/**
21-
* 種別フィルターのコンポーネント
22-
* @param prop 種別フィルターのプロパティ
23-
* @returns コンポーネント
8+
* 成績種別・系列でフィルターする
249
*/
25-
export const ClassTypeFilter: React.FC<SemesterProp> = (prop: SemesterProp) => {
26-
const selectedClassTypes = prop.selectedClassTypes ?? [];
10+
export function ClassSeriesFilter(props: {
11+
selectedClassSeries?: ClassSeries[];
12+
setSelectedClassSeries: (classSeries: ClassSeries[]) => void;
13+
}) {
14+
const selectedClassSeries = props.selectedClassSeries ?? [];
2715

2816
// ボタンがクリックされたときの関数
29-
const onClick = (classType: ClassType) => {
30-
if (selectedClassTypes.includes(classType)) {
17+
const onClick = (classSeries: ClassSeries) => {
18+
if (selectedClassSeries.includes(classSeries)) {
3119
// 既に含まれている場合、除外
32-
prop.setSelectedClassTypes(
33-
selectedClassTypes.filter((c) => c !== classType),
20+
props.setSelectedClassSeries(
21+
selectedClassSeries.filter((c) => c !== classSeries),
3422
);
3523
} else {
3624
// 含まれていた場合、追加
37-
prop.setSelectedClassTypes([...selectedClassTypes, classType]);
25+
props.setSelectedClassSeries([...selectedClassSeries, classSeries]);
3826
}
3927
};
4028

4129
return (
4230
<div className="grid grid-cols-8 gap-2">
43-
{ClassType1.map((c) => (
31+
{ClassType.map((c) => (
4432
<FlagButton
4533
key={c}
4634
label={c}
47-
isSelected={selectedClassTypes.includes(c)}
35+
isSelected={selectedClassSeries.includes(c)}
4836
onClick={() => onClick(c)}
4937
className="col-span-2"
5038
/>
5139
))}
5240

53-
{ClassType2.map((c) => (
41+
{GeneralSeries.map((c) => (
5442
<FlagButton
5543
key={c}
5644
label={c}
57-
isSelected={selectedClassTypes.includes(c)}
58-
onClick={() => onClick(c)}
45+
isSelected={selectedClassSeries.includes(`総合${c}`)}
46+
onClick={() => onClick(`総合${c}`)}
5947
className="aspect-square col-span-1"
6048
/>
6149
))}
6250
</div>
6351
);
64-
};
52+
}

packages/web/src/components/FilterUI/FilterUI.tsx

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@
22
* 全てのフィルターを表示するコンポーネント
33
*/
44

5-
import type { ClassType, Evaluation, Semester } from "@packages/models";
5+
import type {
6+
ClassSeries,
7+
ClassType,
8+
Evaluation,
9+
Semester,
10+
} from "@packages/models";
611
import { useState } from "react";
7-
import { ClassTypeFilter } from "./FilterComponents/ClassType.tsx";
12+
import { ClassSeriesFilter } from "./FilterComponents/ClassType.tsx";
813
import { EvaluationFilter } from "./FilterComponents/Evaluation.tsx";
914
import { Freeword } from "./FilterComponents/Freeword.tsx";
1015
import { RegistrationFilter } from "./FilterComponents/RegistrationFilter.tsx";
@@ -19,7 +24,7 @@ type Filter = {
1924
semesters?: Semester[]; // セメスター
2025
evaluation_included?: Evaluation[]; // 含めたい評価方法
2126
evaluation_excluded?: Evaluation[]; // 除外したい評価方法
22-
classTypes?: ClassType[]; // 種別
27+
series?: ClassSeries[]; // 種別・系列
2328
showRegistered?: boolean; // 履修登録済みの授業を表示する
2429
showNotRegistered?: boolean; // 未履修の授業を表示する
2530
};
@@ -66,10 +71,10 @@ export const FilterUI: React.FC = () => {
6671
</FilterCard>
6772

6873
<FilterCard title={"種別"}>
69-
<ClassTypeFilter
70-
selectedClassTypes={filter.classTypes}
71-
setSelectedClassTypes={(classTypes: ClassType[]) =>
72-
setFilter({ ...filter, classTypes })
74+
<ClassSeriesFilter
75+
selectedClassSeries={filter.series}
76+
setSelectedClassSeries={(series: ClassSeries[]) =>
77+
setFilter({ ...filter, series })
7378
}
7479
/>
7580
</FilterCard>

packages/web/src/pages/Home.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import type React from "react";
22
import { Link } from "react-router-dom";
33
import DataLoadingIndicator from "@/components/DataLoadingIndicator";
4-
import { useCourseDataStatus } from "@/services/courses/data";
54
import Logo from "/syllabus_icon.svg";
65
// import { useCurrentUserQuery, useUpdateUserMutation } from "@/services/user/user.ts";
76

0 commit comments

Comments
 (0)