Skip to content

Commit a88a18c

Browse files
authored
refactor(schedules): relocate schedule route UI to schedule-page (#1353)
## Summary - Move schedule detail route UI from domain-schedules into a dedicated top-level view at src/views/schedule-page/. - Align filenames and exports with that name: `schedule-page`, `schedule-page-tab-content`, `schedule-page-tabs`, and `config/schedule-page-tabs.config.ts`. - Rename symbols for consistency (`SchedulePage`, `SchedulePageTabContent`, `SchedulePageTabsParams`, `schedulePageTabsConfig`, etc.) and point App Router layouts/pages at the new `@/views/schedule-page/...` paths.
1 parent 14de55b commit a88a18c

16 files changed

Lines changed: 90 additions & 93 deletions

File tree

src/app/(Home)/(Schedule)/domains/[domain]/[cluster]/schedules/[scheduleId]/[scheduleTab]/error.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ type Props = {
99
reset: () => void;
1010
};
1111

12-
export default function ScheduleDetailPageError({ error, reset }: Props) {
12+
export default function SchedulePageError({ error, reset }: Props) {
1313
return (
1414
<PanelSection>
1515
<ErrorPanel
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import ScheduleDetailPageTabContent from '@/views/domain-schedules/schedule-detail-page-tab-content/schedule-detail-page-tab-content';
1+
import SchedulePageTabContent from '@/views/schedule-page/schedule-page-tab-content/schedule-page-tab-content';
22

3-
export default ScheduleDetailPageTabContent;
3+
export default SchedulePageTabContent;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import ScheduleDetailPage from '@/views/domain-schedules/schedule-detail-page/schedule-detail-page';
1+
import SchedulePage from '@/views/schedule-page/schedule-page';
22

3-
export default ScheduleDetailPage;
3+
export default SchedulePage;

src/views/domain-schedules/schedule-detail-page-tab-content/schedule-detail-page-tab-content.tsx

Lines changed: 0 additions & 29 deletions
This file was deleted.

src/views/domain-schedules/schedule-detail-page-tab-content/schedule-detail-page-tab-content.types.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/views/domain-schedules/schedule-detail-page-tabs/schedule-detail-page-tabs.types.ts

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/views/domain-schedules/schedule-detail-page/schedule-detail-page.tsx

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/views/domain-schedules/schedule-detail-page/schedule-detail-tabs.config.ts

Lines changed: 0 additions & 18 deletions
This file was deleted.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { MdCalendarMonth, MdTimeline } from 'react-icons/md';
2+
3+
import { type SchedulePageTabsConfig } from '../schedule-page-tabs/schedule-page-tabs.types';
4+
5+
const schedulePageTabsConfig: SchedulePageTabsConfig<'details' | 'runs'> = {
6+
details: {
7+
title: 'Details',
8+
artwork: MdCalendarMonth,
9+
},
10+
runs: {
11+
title: 'Runs',
12+
artwork: MdTimeline,
13+
},
14+
};
15+
16+
export default schedulePageTabsConfig;

src/views/domain-schedules/schedule-detail-page-tab-content/__tests__/schedule-detail-page-tab-content.test.tsx renamed to src/views/schedule-page/schedule-page-tab-content/__tests__/schedule-page-tab-content.test.tsx

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import React from 'react';
22

33
import { render, screen } from '@/test-utils/rtl';
44

5-
import { type ScheduleDetailPageTabsParams } from '../../schedule-detail-page-tabs/schedule-detail-page-tabs.types';
6-
import ScheduleDetailPageTabContent from '../schedule-detail-page-tab-content';
5+
import { type SchedulePageTabsParams } from '../../schedule-page-tabs/schedule-page-tabs.types';
6+
import SchedulePageTabContent from '../schedule-page-tab-content';
77

88
jest.mock('next/navigation', () => ({
99
...jest.requireActual('next/navigation'),
@@ -12,7 +12,7 @@ jest.mock('next/navigation', () => ({
1212
}),
1313
}));
1414

15-
describe(ScheduleDetailPageTabContent.name, () => {
15+
describe(SchedulePageTabContent.name, () => {
1616
it('renders placeholder for details tab', () => {
1717
setup({ scheduleTab: 'details' });
1818
expect(screen.getByText(/Details/i)).toBeInTheDocument();
@@ -27,8 +27,7 @@ describe(ScheduleDetailPageTabContent.name, () => {
2727
const { notFound } = jest.requireMock('next/navigation');
2828
expect(() =>
2929
setup({
30-
scheduleTab:
31-
'unknown-tab' as ScheduleDetailPageTabsParams['scheduleTab'],
30+
scheduleTab: 'unknown-tab' as SchedulePageTabsParams['scheduleTab'],
3231
})
3332
).toThrow('NEXT_NOT_FOUND');
3433
expect(notFound).toHaveBeenCalled();
@@ -38,10 +37,10 @@ describe(ScheduleDetailPageTabContent.name, () => {
3837
function setup({
3938
scheduleTab = 'details',
4039
}: {
41-
scheduleTab?: ScheduleDetailPageTabsParams['scheduleTab'];
40+
scheduleTab?: SchedulePageTabsParams['scheduleTab'];
4241
} = {}) {
4342
render(
44-
<ScheduleDetailPageTabContent
43+
<SchedulePageTabContent
4544
params={{
4645
domain: 'test-domain',
4746
cluster: 'test-cluster',

0 commit comments

Comments
 (0)