github-issue-tower-defence-management 1.91.0 → 1.91.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/README.md +5 -4
- package/bin/adapter/entry-points/cli/index.js +1 -1
- package/bin/adapter/entry-points/cli/index.js.map +1 -1
- package/bin/adapter/entry-points/handlers/consoleListsWriter.js +1 -0
- package/bin/adapter/entry-points/handlers/consoleListsWriter.js.map +1 -1
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js +3 -0
- package/bin/domain/usecases/console/GenerateConsoleListsUseCase.js.map +1 -1
- package/package.json +1 -1
- package/src/adapter/entry-points/cli/index.test.ts +6 -1
- package/src/adapter/entry-points/cli/index.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMarkdownView.stories.tsx → content/ConsoleMarkdownContent.stories.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMarkdownView.test.tsx → content/ConsoleMarkdownContent.test.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMarkdownView.tsx → content/ConsoleMarkdownContent.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMermaidDiagram.stories.tsx → content/ConsoleMermaidDiagram.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMermaidDiagram.test.tsx → content/ConsoleMermaidDiagram.test.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleMermaidDiagram.tsx → content/ConsoleMermaidDiagram.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleChangedFileList.stories.tsx → detail/ConsoleChangedFileList.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleChangedFileList.test.tsx → detail/ConsoleChangedFileList.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleChangedFileList.tsx → detail/ConsoleChangedFileList.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommentList.stories.tsx → detail/ConsoleCommentList.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommentList.test.tsx → detail/ConsoleCommentList.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommentList.tsx → detail/ConsoleCommentList.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommitList.stories.tsx → detail/ConsoleCommitList.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommitList.test.tsx → detail/ConsoleCommitList.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCommitList.tsx → detail/ConsoleCommitList.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemDetail.stories.tsx → detail/ConsoleItemDetail.stories.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemDetail.test.tsx → detail/ConsoleItemDetail.test.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemDetail.tsx → detail/ConsoleItemDetail.tsx} +11 -8
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemIcon.test.tsx → detail/ConsoleItemIcon.test.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemIcon.tsx → detail/ConsoleItemIcon.tsx} +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestSection.stories.tsx → detail/ConsolePullRequestDetail.stories.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestSection.test.tsx → detail/ConsolePullRequestDetail.test.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestSection.tsx → detail/ConsolePullRequestDetail.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleProjectHeader.stories.tsx → layout/ConsoleProjectSummary.stories.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleProjectHeader.test.tsx → layout/ConsoleProjectSummary.test.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleProjectHeader.tsx → layout/ConsoleProjectSummary.tsx} +3 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleTabBar.stories.tsx → layout/ConsoleTabList.stories.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleTabBar.test.tsx → layout/ConsoleTabList.test.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleTabBar.tsx → layout/ConsoleTabList.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListView.stories.tsx → list/ConsoleItemList.stories.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListView.test.tsx → list/ConsoleItemList.test.tsx} +9 -9
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListView.tsx → list/ConsoleItemList.tsx} +13 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListItemRow.stories.tsx → list/ConsoleItemSummary.stories.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListItemRow.test.tsx → list/ConsoleItemSummary.test.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleListItemRow.tsx → list/ConsoleItemSummary.tsx} +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryGroupHeader.stories.tsx → list/ConsoleStorySummary.stories.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryGroupHeader.test.tsx → list/ConsoleStorySummary.test.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryGroupHeader.tsx → list/ConsoleStorySummary.tsx} +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleCloseActions.stories.tsx +14 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCloseButtonGroup.test.tsx → operations/ConsoleCloseActions.test.tsx} +4 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleCloseButtonGroup.tsx → operations/ConsoleCloseActions.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleNextActionDateActions.stories.tsx +20 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleNextActionDateGroup.test.tsx → operations/ConsoleNextActionDateActions.test.tsx} +5 -5
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleNextActionDateGroup.tsx → operations/ConsoleNextActionDateActions.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleOperationBar.stories.tsx → operations/ConsoleOperationMenu.stories.tsx} +7 -7
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleOperationBar.test.tsx → operations/ConsoleOperationMenu.test.tsx} +8 -8
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleOperationBar.tsx → operations/ConsoleOperationMenu.tsx} +16 -13
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsolePullRequestReviewActions.stories.tsx +14 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestReviewGroup.test.tsx → operations/ConsolePullRequestReviewActions.test.tsx} +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePullRequestReviewGroup.tsx → operations/ConsolePullRequestReviewActions.tsx} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleStatusActions.stories.tsx +17 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStatusButtonGroup.test.tsx → operations/ConsoleStatusActions.test.tsx} +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStatusButtonGroup.tsx → operations/ConsoleStatusActions.tsx} +7 -4
- package/src/adapter/entry-points/console/ui/src/features/console/components/operations/ConsoleStoryActions.stories.tsx +17 -0
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryButtonGroup.test.tsx → operations/ConsoleStoryActions.test.tsx} +5 -11
- package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleStoryButtonGroup.tsx → operations/ConsoleStoryActions.tsx} +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleCaches.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleItemDetailData.test.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleItemDetailData.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOperations.test.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOperations.ts +3 -3
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOverlay.test.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleOverlay.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/hooks/useConsoleTabData.ts +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/lib/consoleApi.ts +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/{grouping.ts → logic/grouping.ts} +2 -2
- package/src/adapter/entry-points/console/ui/src/features/console/logic/overlay.test.ts +146 -0
- package/src/adapter/entry-points/console/ui/src/features/console/logic/overlay.ts +48 -0
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleItemDetailContainer.test.tsx +4 -4
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsoleItemDetailContainer.tsx +6 -6
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.test.tsx +55 -1
- package/src/adapter/entry-points/console/ui/src/features/console/pages/ConsolePage.tsx +12 -20
- package/src/adapter/entry-points/console/ui/src/features/console/{fixtures.ts → testing/fixtures.ts} +1 -1
- package/src/adapter/entry-points/console/ui-dist/assets/{index-BvuSQN9s.js → index-Druih-WG.js} +20 -20
- package/src/adapter/entry-points/console/ui-dist/index.html +1 -1
- package/src/adapter/entry-points/handlers/consoleListsWriter.test.ts +27 -2
- package/src/adapter/entry-points/handlers/consoleListsWriter.ts +1 -0
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.test.ts +26 -0
- package/src/domain/usecases/console/GenerateConsoleListsUseCase.ts +17 -1
- package/types/adapter/entry-points/handlers/consoleListsWriter.d.ts.map +1 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts +2 -1
- package/types/domain/usecases/console/GenerateConsoleListsUseCase.d.ts.map +1 -1
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleCloseButtonGroup.stories.tsx +0 -14
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleNextActionDateGroup.stories.tsx +0 -20
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsolePullRequestReviewGroup.stories.tsx +0 -14
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleStatusButtonGroup.stories.tsx +0 -17
- package/src/adapter/entry-points/console/ui/src/features/console/components/ConsoleStoryButtonGroup.stories.tsx +0 -17
- package/src/adapter/entry-points/console/ui/src/features/console/overlay.test.ts +0 -124
- package/src/adapter/entry-points/console/ui/src/features/console/overlay.ts +0 -101
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsoleItemIcon.stories.tsx → detail/ConsoleItemIcon.stories.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePanel.stories.tsx → layout/ConsolePanel.stories.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePanel.test.tsx → layout/ConsolePanel.test.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/components/{ConsolePanel.tsx → layout/ConsolePanel.tsx} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{colors.test.ts → logic/colors.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{colors.ts → logic/colors.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{fileStatus.test.ts → logic/fileStatus.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{fileStatus.ts → logic/fileStatus.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{grouping.test.ts → logic/grouping.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{itemIcons.test.ts → logic/itemIcons.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{itemIcons.ts → logic/itemIcons.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{operations.test.ts → logic/operations.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{operations.ts → logic/operations.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{relativeTime.test.ts → logic/relativeTime.test.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{relativeTime.ts → logic/relativeTime.ts} +0 -0
- /package/src/adapter/entry-points/console/ui/src/features/console/{types.ts → logic/types.ts} +0 -0
|
@@ -28,7 +28,23 @@ const listPayload = (tab: string) => ({
|
|
|
28
28
|
createdAt: '2026-06-17T00:00:00.000Z',
|
|
29
29
|
},
|
|
30
30
|
]
|
|
31
|
-
:
|
|
31
|
+
: tab === 'unread'
|
|
32
|
+
? [
|
|
33
|
+
{
|
|
34
|
+
number: 866,
|
|
35
|
+
title: 'Notify finished issue preparation',
|
|
36
|
+
url: 'https://github.com/o/r/issues/866',
|
|
37
|
+
repo: 'o/r',
|
|
38
|
+
nameWithOwner: 'o/r',
|
|
39
|
+
projectItemId: 'PVTI_2',
|
|
40
|
+
itemId: 'PVTI_2',
|
|
41
|
+
isPr: false,
|
|
42
|
+
story: 'TDPM Console port',
|
|
43
|
+
labels: [],
|
|
44
|
+
createdAt: '2026-06-18T00:00:00.000Z',
|
|
45
|
+
},
|
|
46
|
+
]
|
|
47
|
+
: [],
|
|
32
48
|
});
|
|
33
49
|
|
|
34
50
|
const installFetch = (): void => {
|
|
@@ -71,4 +87,42 @@ describe('ConsolePage', () => {
|
|
|
71
87
|
expect(await findByText('← Back to list')).toBeInTheDocument();
|
|
72
88
|
expect(getByText('Approve')).toBeInTheDocument();
|
|
73
89
|
});
|
|
90
|
+
|
|
91
|
+
it('keeps a tab driven to zero at zero and does not revive its badge after switching tabs', async () => {
|
|
92
|
+
const { getByText, queryByText, findByText } = render(<ConsolePage />);
|
|
93
|
+
await waitFor(() => {
|
|
94
|
+
expect(getByText('Add serveConsole subcommand')).toBeInTheDocument();
|
|
95
|
+
});
|
|
96
|
+
expect(
|
|
97
|
+
getByText('Awaiting Quality Check')
|
|
98
|
+
.closest('button')
|
|
99
|
+
?.querySelector('.console-tab-badge')?.textContent,
|
|
100
|
+
).toBe('1');
|
|
101
|
+
|
|
102
|
+
fireEvent.click(getByText('Add serveConsole subcommand'));
|
|
103
|
+
expect(await findByText('← Back to list')).toBeInTheDocument();
|
|
104
|
+
fireEvent.click(getByText('Approve'));
|
|
105
|
+
|
|
106
|
+
await waitFor(() => {
|
|
107
|
+
expect(
|
|
108
|
+
getByText('Awaiting Quality Check')
|
|
109
|
+
.closest('button')
|
|
110
|
+
?.querySelector('.console-tab-badge')?.textContent,
|
|
111
|
+
).toBe('0');
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
fireEvent.click(getByText('Unread'));
|
|
115
|
+
await waitFor(() => {
|
|
116
|
+
expect(
|
|
117
|
+
getByText('Notify finished issue preparation'),
|
|
118
|
+
).toBeInTheDocument();
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
const prsTabButton = queryByText('Awaiting Quality Check')?.closest(
|
|
122
|
+
'button',
|
|
123
|
+
);
|
|
124
|
+
const prsBadge =
|
|
125
|
+
prsTabButton?.querySelector('.console-tab-badge')?.textContent ?? '0';
|
|
126
|
+
expect(prsBadge).toBe('0');
|
|
127
|
+
});
|
|
74
128
|
});
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import { useMemo, useState } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { buildConsoleListRows, resolveItemStory } from '../grouping';
|
|
2
|
+
import { ConsoleProjectSummary } from '../components/layout/ConsoleProjectSummary';
|
|
3
|
+
import { ConsoleTabList } from '../components/layout/ConsoleTabList';
|
|
4
|
+
import { ConsoleItemList } from '../components/list/ConsoleItemList';
|
|
6
5
|
import { useConsoleCaches } from '../hooks/useConsoleCaches';
|
|
7
6
|
import { useConsoleOperations } from '../hooks/useConsoleOperations';
|
|
8
7
|
import { useConsoleOverlay } from '../hooks/useConsoleOverlay';
|
|
9
8
|
import { useConsolePjcode } from '../hooks/useConsolePjcode';
|
|
10
9
|
import { useConsoleTabData } from '../hooks/useConsoleTabData';
|
|
10
|
+
import { buildConsoleListRows, resolveItemStory } from '../logic/grouping';
|
|
11
11
|
import {
|
|
12
12
|
countPendingItems,
|
|
13
13
|
filterPendingItems,
|
|
14
14
|
overlayKeyForItem,
|
|
15
|
-
|
|
16
|
-
} from '../overlay';
|
|
15
|
+
} from '../logic/overlay';
|
|
17
16
|
import type {
|
|
18
17
|
ConsoleListItem,
|
|
19
18
|
ConsoleOverlayStatus,
|
|
20
19
|
ConsoleTabName,
|
|
21
|
-
} from '../types';
|
|
22
|
-
import { CONSOLE_TABS } from '../types';
|
|
20
|
+
} from '../logic/types';
|
|
21
|
+
import { CONSOLE_TABS } from '../logic/types';
|
|
23
22
|
import { ConsoleItemDetailContainer } from './ConsoleItemDetailContainer';
|
|
24
23
|
|
|
25
24
|
const emptyCounts = (): Record<ConsoleTabName, number> => {
|
|
@@ -57,8 +56,6 @@ export const ConsolePage = () => {
|
|
|
57
56
|
result[tab.name] = countPendingItems(
|
|
58
57
|
snapshot.items,
|
|
59
58
|
overlayState.overlay,
|
|
60
|
-
parseGeneratedAtMs(snapshot.generatedAt),
|
|
61
|
-
tab.name,
|
|
62
59
|
);
|
|
63
60
|
}
|
|
64
61
|
return result;
|
|
@@ -69,13 +66,8 @@ export const ConsolePage = () => {
|
|
|
69
66
|
if (activeSnapshot === null) {
|
|
70
67
|
return [];
|
|
71
68
|
}
|
|
72
|
-
return filterPendingItems(
|
|
73
|
-
|
|
74
|
-
overlayState.overlay,
|
|
75
|
-
parseGeneratedAtMs(activeSnapshot.generatedAt),
|
|
76
|
-
activeTab,
|
|
77
|
-
);
|
|
78
|
-
}, [activeSnapshot, overlayState.overlay, activeTab]);
|
|
69
|
+
return filterPendingItems(activeSnapshot.items, overlayState.overlay);
|
|
70
|
+
}, [activeSnapshot, overlayState.overlay]);
|
|
79
71
|
|
|
80
72
|
const rows = useMemo(
|
|
81
73
|
() => buildConsoleListRows(pendingItems, overlayState.overlay),
|
|
@@ -106,14 +98,14 @@ export const ConsolePage = () => {
|
|
|
106
98
|
|
|
107
99
|
return (
|
|
108
100
|
<main className="console-app">
|
|
109
|
-
<
|
|
110
|
-
<
|
|
101
|
+
<ConsoleProjectSummary pjcode={pjcode} />
|
|
102
|
+
<ConsoleTabList
|
|
111
103
|
activeTab={activeTab}
|
|
112
104
|
counts={counts}
|
|
113
105
|
onSelectTab={selectTab}
|
|
114
106
|
/>
|
|
115
107
|
{selectedItem === null ? (
|
|
116
|
-
<
|
|
108
|
+
<ConsoleItemList
|
|
117
109
|
rows={rows}
|
|
118
110
|
storyColors={storyColors}
|
|
119
111
|
activeItemId={null}
|
package/src/adapter/entry-points/console/ui/src/features/console/{fixtures.ts → testing/fixtures.ts}
RENAMED
|
@@ -7,7 +7,7 @@ import type {
|
|
|
7
7
|
ConsoleListItem,
|
|
8
8
|
ConsoleRelatedPullRequest,
|
|
9
9
|
ConsoleStoryColorSource,
|
|
10
|
-
} from '
|
|
10
|
+
} from '../logic/types';
|
|
11
11
|
|
|
12
12
|
export const consoleStatusOptionsFixture: ConsoleFieldOption[] = [
|
|
13
13
|
{ id: 'f75ad846', name: 'Unread', color: 'ORANGE' },
|