Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2de2cd5

Browse files
authored
feat: add workspace filter for shared workspaces (#21310)
resolvescoder/internal#1129<img width="361" height="462" alt="Screenshot 2025-12-17 at 20 49 07"src="https://github.com/user-attachments/assets/e06843f0-15e4-41fc-b736-ccfaa303ee74"/>
1 parentca971dd commit2de2cd5

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import{mockApiError}from"testHelpers/entities";
2+
import{withDashboardProvider}from"testHelpers/storybook";
3+
importtype{Meta,StoryObj}from"@storybook/react-vite";
4+
import{
5+
getDefaultFilterProps,
6+
MockMenu,
7+
}from"components/Filter/storyHelpers";
8+
importtype{WorkspaceFilterState}from"./WorkspacesFilter";
9+
import{WorkspacesFilter}from"./WorkspacesFilter";
10+
11+
constdefaultFilterProps=getDefaultFilterProps<WorkspaceFilterState>({
12+
query:"owner:me",
13+
menus:{
14+
user:MockMenu,
15+
template:MockMenu,
16+
status:MockMenu,
17+
organizations:MockMenu,
18+
},
19+
values:{
20+
owner:"me",
21+
template:undefined,
22+
status:undefined,
23+
},
24+
});
25+
26+
constmeta:Meta<typeofWorkspacesFilter>={
27+
title:"pages/WorkspacesPage/WorkspacesFilter",
28+
component:WorkspacesFilter,
29+
args:{
30+
filter:defaultFilterProps.filter,
31+
error:undefined,
32+
templateMenu:MockMenu,
33+
statusMenu:MockMenu,
34+
},
35+
decorators:[withDashboardProvider],
36+
};
37+
38+
exportdefaultmeta;
39+
typeStory=StoryObj<typeofWorkspacesFilter>;
40+
41+
exportconstDefault:Story={};
42+
43+
exportconstWithUserMenu:Story={
44+
args:{
45+
userMenu:MockMenu,
46+
},
47+
};
48+
49+
exportconstWithOrganizations:Story={
50+
args:{
51+
userMenu:MockMenu,
52+
organizationsMenu:MockMenu,
53+
},
54+
parameters:{
55+
showOrganizations:true,
56+
},
57+
};
58+
59+
exportconstLoading:Story={
60+
args:{
61+
statusMenu:{
62+
...MockMenu,
63+
isInitializing:true,
64+
},
65+
},
66+
};
67+
68+
exportconstWithError:Story={
69+
args:{
70+
error:mockApiError({
71+
message:"Invalid filter query",
72+
validations:[{field:"filter",detail:"Invalid filter syntax"}],
73+
}),
74+
},
75+
};
76+
77+
exportconstWithDormantPreset:Story={
78+
parameters:{
79+
features:["advanced_template_scheduling"],
80+
},
81+
};

‎site/src/pages/WorkspacesPage/filter/WorkspacesFilter.tsx‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ const workspaceFilterQuery = {
2929
failed:"status:failed",
3030
dormant:"dormant:true",
3131
outdated:"outdated:true",
32+
shared:"shared:true",
3233
};
3334

3435
typeFilterPreset={
@@ -59,6 +60,10 @@ const PRESET_FILTERS: FilterPreset[] = [
5960
query:workspaceFilterQuery.outdated,
6061
name:"Outdated workspaces",
6162
},
63+
{
64+
query:workspaceFilterQuery.shared,
65+
name:"Shared workspaces",
66+
},
6267
];
6368

6469
// Defined outside component so that the array doesn't get reconstructed each render

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp