Skip to content

Commit b47494d

Browse files
committed
Revamp Import Members dialog UI and logic
1 parent 0a17041 commit b47494d

File tree

5 files changed

+218
-271
lines changed

5 files changed

+218
-271
lines changed

public/locales/en.json

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
"Entities": {
99
"ManagedControlPlane": "Managed Control Plane",
1010
"Project": "Project",
11-
"Workspace": "Workspace"
11+
"Workspace": "Workspace",
12+
"Users": "Users",
13+
"ServiceAccounts": "ServiceAccounts"
1214
},
1315
"ComponentList": {
1416
"tableComponentHeader": "Name",
@@ -171,7 +173,8 @@
171173
"addHeader": "Add User or ServiceAccount",
172174
"saveButton": "Save changes",
173175
"defaultNamespaceInfo": "Leave empty to use <span>default</span> namespace",
174-
"serviceAccoutsGuide": "You can also use our <link1>Service Account Guide</link1> for more information."
176+
"serviceAccoutsGuide": "You can also use our <link1>Service Account Guide</link1> for more information.",
177+
"reuseMembersButton": "Reuse"
175178
},
176179

177180
"ProjectsPage": {
@@ -313,10 +316,10 @@
313316
"maxChars": "Max length is {{maxLength}} characters.",
314317
"userExists": "User with this name already exists!",
315318
"atLeastOneUser": "You need to have at least one member assigned.",
316-
"selectAtLeastOneOption": "Select at least one option",
317319
"notValidChargingTargetFormat": "Use lowercase letters a-f, numbers 0-9, and hyphens (-) in the format: aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
318320
},
319321
"common": {
322+
"all": "All",
320323
"documentation": "Documentation",
321324
"close": "Close",
322325
"cannotLoadData": "Cannot load data",
@@ -425,12 +428,11 @@
425428
}
426429
,
427430
"ImportMembersDialog": {
428-
"dialogTitle": "Reuse",
429-
"chooseParentLabel": "Choose parent resource to reuse members from",
430-
"whatToImportLabel": "What would you like to import?",
431-
"serviceAccountsLabel": "Service Accounts",
432-
"addMembersButton": "Add members",
433-
"selectAllButton": "Select all",
434-
"deselectAllButton": "Deselect all"
431+
"dialogTitle": "Reuse Members",
432+
"reuseFromLabel": "Reuse from",
433+
"filterForLabel": "Filter for",
434+
"addMembersButton0": "Add members",
435+
"addMembersButton1": "Add 1 member",
436+
"addMembersButtonN": "Add {{count}} members"
435437
}
436438
}

src/components/Members/EditMembers.tsx

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ export const EditMembers: FC<EditMembersProps> = ({
7878
imported.forEach((m) => byName.set(m.name, m));
7979
const merged = Array.from(byName.values());
8080
onMemberChanged(merged);
81-
setIsImportDialogOpen(false);
8281
},
8382
[members, onMemberChanged],
8483
);
@@ -128,7 +127,7 @@ export const EditMembers: FC<EditMembersProps> = ({
128127
icon={'cause'}
129128
onClick={handleOpenImportDialog}
130129
>
131-
{t('ImportMembersDialog.dialogTitle')}
130+
{t('EditMembers.reuseMembersButton')}
132131
</Button>
133132
)}
134133
</FlexBox>
@@ -140,13 +139,15 @@ export const EditMembers: FC<EditMembersProps> = ({
140139
onSave={handleSaveMember}
141140
/>
142141

143-
<ImportMembersDialog
144-
open={isImportDialogOpen}
145-
workspaceName={workspaceName}
146-
projectName={computedProjectName}
147-
onClose={handleCloseImportDialog}
148-
onImport={handleImportMembers}
149-
/>
142+
{computedProjectName && (
143+
<ImportMembersDialog
144+
isOpen={isImportDialogOpen}
145+
workspaceName={workspaceName}
146+
projectName={computedProjectName}
147+
onClose={handleCloseImportDialog}
148+
onImport={handleImportMembers}
149+
/>
150+
)}
150151

151152
<MemberTable
152153
requireAtLeastOneMember={requireAtLeastOneMember}

src/components/Members/ImportMembersDialog.module.css

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,17 @@
22
min-width: 650px;
33
}
44

5-
.table {
6-
width: 100%;
7-
max-height: 400px;
8-
overflow-y: auto;
5+
.grid {
6+
display: grid;
7+
grid-template-columns: auto 1fr;
8+
gap: 1rem;
9+
padding: 1rem 1rem 2rem;
10+
}
11+
12+
.gridColumnLabel {
13+
align-self: center;
14+
}
15+
16+
.tableContainer {
17+
padding: 1rem;
918
}

0 commit comments

Comments
 (0)