Skip to content

Commit a990209

Browse files
committed
feat: room order로 시간표의 방 정렬
1 parent fc77751 commit a990209

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

‎packages/common/src/components/mdx_components/session_timetable.tsx‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ const getRooms = (data: SessionSchema[]) => {
3636
return Array.from(new Set<string>(data.reduce((acc, s) => [...acc, ...s.room_schedules.map((r) => r.room_name)], [] as string[])));
3737
};
3838

39+
const getRoomOrders = (data: SessionSchema[]): { [room: string]: number } => {
40+
return data.reduce(
41+
(acc, s) => {
42+
s.room_schedules.forEach((r) => (acc[r.room_name] = r.room_order));
43+
return acc;
44+
},
45+
{} as { [room: string]: number }
46+
);
47+
};
48+
3949
const getConfStartEndTimePerDay: (data: SessionSchema[]) => {
4050
[date: string]: { start: DateTime; end: DateTime };
4151
} = (data) => {
@@ -180,7 +190,8 @@ export const SessionTimeTable: FC<SessionTimeTablePropType> = ErrorBoundary.with
180190
const dates = Object.keys(timeTableData).sort((a, b) => new Date(a).getTime() - new Date(b).getTime());
181191
const rooms: { [room: string]: number } = getRooms(sessionList).reduce((acc, room) => ({ ...acc, [room]: 0 }), {});
182192
const roomCount = Object.keys(rooms).length;
183-
const sortedRoomList = Object.keys(rooms).sort();
193+
const roomOrders = getRoomOrders(sessionList);
194+
const sortedRoomList = Object.keys(rooms).sort((a, b) => roomOrders[a] - roomOrders[b] || a.localeCompare(b));
184195

185196
const [selectedDate, setSelectedDate] = useState<string>(location.state?.selectedDate ?? (confDate || dates[0]));
186197
const selectedTableData = timeTableData[selectedDate];

‎packages/common/src/schemas/backendAPI.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ export type SessionSchema = {
124124
room_schedules: {
125125
id: string;
126126
room_name: string;
127+
room_order: number;
127128
start_at: string;
128129
end_at: string;
129130
}[];

0 commit comments

Comments
 (0)