commit 8c940a826d8e25663163279dc383429dd1180cca
parent a64a5c5890d71e80b61841f0e089f84068e5d4b9
Author: Yuukin256 <52195426+Yuukin256@users.noreply.github.com>
Date: Wed, 9 Apr 2025 22:14:40 +0900
superjsonを使わないように変更 (#93)
* #92 superjson関係の設定をコメントアウト
* #92 Date等のやりとりを無くすように修正
Diffstat:
8 files changed, 27 insertions(+), 42 deletions(-)
diff --git a/next.config.js b/next.config.js
@@ -10,7 +10,7 @@ const nextConfig = withPWA({
reactStrictMode: true,
trailingSlash: false,
experimental: {
- swcPlugins: [['superjson-next', { router: 'APP' }]],
+ // swcPlugins: [['superjson-next', { router: 'PAGE' }]],
},
redirects: async () => {
const startClassRedirects = [1, 2, 3].flatMap((g) =>
diff --git a/src/client/features/daily/components/Lessons/index.tsx b/src/client/features/daily/components/Lessons/index.tsx
@@ -38,7 +38,7 @@ function Lessons({ timetable }: Props) {
{SCHOOL_TIMES.map((st) => {
return (
<Lesson
- date={timetable.date}
+ date={new Date(timetable.date)}
period={st}
courses={timetable[`period${st}`]?.courses ?? []}
basis={timetable[`period${st}`]?.basis ?? null}
diff --git a/src/client/features/daily/types.ts b/src/client/features/daily/types.ts
@@ -7,6 +7,6 @@ export type Basis =
export type OnePeriod = { courses: Course[]; basis: Basis };
export type DayTimetable = {
- date: Date;
+ date: string;
event?: string;
} & Partial<Record<SchoolPeriod, OnePeriod>>;
diff --git a/src/client/utils/trpc.ts b/src/client/utils/trpc.ts
@@ -1,6 +1,6 @@
import { httpBatchLink } from '@trpc/client';
import { createTRPCNext } from '@trpc/next';
-import superjson from 'superjson';
+// import superjson from 'superjson';
import type { AppRouter } from 'server/routers/_app';
@@ -28,7 +28,7 @@ export const trpc = createTRPCNext<AppRouter>({
* @link https://trpc.io/docs/ssr
**/
url: `${getBaseUrl()}/api/trpc`,
- transformer: superjson,
+ // transformer: superjson,
}),
],
/**
@@ -46,5 +46,5 @@ export const trpc = createTRPCNext<AppRouter>({
* @link https://trpc.io/docs/ssr
**/
ssr: false,
- transformer: superjson,
+ // transformer: superjson,
});
diff --git a/src/pages/[class]/index.tsx b/src/pages/[class]/index.tsx
@@ -10,8 +10,8 @@ import formatDate from 'common/utils/formatDate';
import { zodClass, zodGrade } from 'common/utils/zod';
import { caller } from 'server/routers/_app';
-import type { DayTimetable, OnePeriod } from 'client/features/daily/types';
-import type { Class, DayPeriodJa, Grade } from 'common/types';
+import type { DayTimetable } from 'client/features/daily/types';
+import type { Class, Grade } from 'common/types';
import type { GetStaticPaths, GetStaticProps, NextPage } from 'next';
type UrlQuery = {
@@ -78,35 +78,23 @@ export const getStaticProps: GetStaticProps<PageProps, UrlQuery> = async ({
// クラスの臨時変更を取得
// 現在、臨時変更は扱っていない
- /** 曜日時限からクラスの科目データを返す */
- const makeOnePeriodData = (
- dayPeriod?: DayPeriodJa,
- ): OnePeriod | undefined => {
- if (dayPeriod) {
- return {
- courses: standardTimetable[dayPeriod],
- basis: { type: 'dayPeriod', dayPeriod },
- };
- } else {
- return void 0;
- }
- };
-
// 曜日時限時間割表にクラスの科目データを当てはめていく
const dayTimetableCalendar = dayPeriodCalendar.map(
- ([date, sch]): [string, DayTimetable] => {
+ ([date, { event, ...sch }]): [string, DayTimetable] => {
+ const periods = Object.entries(sch).map(([key, value]) => [
+ key,
+ {
+ // 曜日時限からクラスの科目データを返す
+ courses: standardTimetable[value],
+ basis: { type: 'dayPeriod', dayPeriod: value },
+ },
+ ]);
return [
date,
{
- date: sch.date,
- event: sch.event,
- period1: makeOnePeriodData(sch.period1),
- period2: makeOnePeriodData(sch.period2),
- period3: makeOnePeriodData(sch.period3),
- period4: makeOnePeriodData(sch.period4),
- period5: makeOnePeriodData(sch.period5),
- period6: makeOnePeriodData(sch.period6),
- period7: makeOnePeriodData(sch.period7),
+ date,
+ event,
+ ...Object.fromEntries(periods),
},
];
},
diff --git a/src/server/context.ts b/src/server/context.ts
@@ -1,6 +1,5 @@
// import { prisma } from 'server/utils/prisma';
-import type * as trpc from '@trpc/server';
import type * as trpcNext from '@trpc/server/adapters/next';
// create context based of incoming request
@@ -13,4 +12,4 @@ export const createContext = async (
// prisma,
};
};
-export type Context = trpc.inferAsyncReturnType<typeof createContext>;
+export type Context = Awaited<ReturnType<typeof createContext>>;
diff --git a/src/server/routers/dayPeriodSchedule.ts b/src/server/routers/dayPeriodSchedule.ts
@@ -8,8 +8,6 @@ import { procedure, router } from '../trpc';
import type { DaySchedule } from 'common/types';
-type DayScheduleWithDate = DaySchedule & { date: Date };
-
export const dayPeriodScheduleRouter = router({
byGradeAndPeriod: procedure
.input(
@@ -19,18 +17,18 @@ export const dayPeriodScheduleRouter = router({
endDate: z.string(),
}),
)
- .query<[string, DayScheduleWithDate][]>(async ({ input }) => {
+ .query<[string, DaySchedule][]>(async ({ input }) => {
const schedules = Object.entries(dayPeriodSchedules)
.filter(
([date]) =>
isAfter(date, input.startDate) && isBefore(date, input.endDate),
)
- .map(([date, allGradesSchedule]): [string, DayScheduleWithDate] => {
+ .map(([date, allGradesSchedule]): [string, DaySchedule] => {
const schedule = { ...allGradesSchedule[`grade${input.grade}`] };
- return [date, { date: new Date(date), ...schedule }];
+ return [date, schedule];
})
// 日付以外のデータがある日のみ
- .filter(([, schedule]) => Object.values(schedule).length > 1);
+ .filter(([, schedule]) => Object.values(schedule).length > 0);
return schedules;
}),
diff --git a/src/server/trpc.ts b/src/server/trpc.ts
@@ -1,5 +1,5 @@
import { initTRPC } from '@trpc/server';
-import superjson from 'superjson';
+// import superjson from 'superjson';
import type { Context } from './context';
@@ -8,7 +8,7 @@ import type { Context } from './context';
// For instance, the use of a t variable
// is common in i18n libraries.
const t = initTRPC.context<Context>().create({
- transformer: superjson,
+ // transformer: superjson,
});
// Base router and procedure helpers