Skip to content

Commit 813b87c

Browse files
massi-angbigadsoleiman
authored andcommitted
feat(session): One-click Modal confirmation for delete all sessions
1 parent 8a9ce58 commit 813b87c

File tree

1 file changed

+25
-2
lines changed
  • lib/user-interface/react-app/src/components/chatbot

1 file changed

+25
-2
lines changed

lib/user-interface/react-app/src/components/chatbot/sessions.tsx

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ export default function Sessions(props: SessionsProps) {
3030
const [selectedItems, setSelectedItems] = useState<Session[]>([]);
3131
const [preferences, setPreferences] = useState({ pageSize: 20 });
3232
const [showModalDelete, setShowModalDelete] = useState(false);
33+
const [deleteAllSessions, setDeleteAllSessions] = useState(false);
3334

3435
const { items, collectionProps, paginationProps } = useCollection(sessions, {
3536
filtering: {
@@ -91,7 +92,6 @@ export default function Sessions(props: SessionsProps) {
9192

9293
const deleteUserSessions = async () => {
9394
if (!appContext) return;
94-
if (!confirm("Are you sure you want to delete all sessions?")) return;
9595

9696
setIsLoading(true);
9797
const apiClient = new ApiClient(appContext);
@@ -125,6 +125,29 @@ export default function Sessions(props: SessionsProps) {
125125
? `session ${selectedItems[0].id}?`
126126
: `${selectedItems.length} sessions?`}
127127
</Modal>
128+
<Modal
129+
onDismiss={() => setDeleteAllSessions(false)}
130+
visible={deleteAllSessions}
131+
footer={
132+
<Box float="right">
133+
<SpaceBetween direction="horizontal" size="xs">
134+
{" "}
135+
<Button
136+
variant="link"
137+
onClick={() => setDeleteAllSessions(false)}
138+
>
139+
Cancel
140+
</Button>
141+
<Button variant="primary" onClick={deleteUserSessions}>
142+
Ok
143+
</Button>
144+
</SpaceBetween>{" "}
145+
</Box>
146+
}
147+
header={"Delete all sessions"}
148+
>
149+
{`Do you want to delete ${sessions.length} sessions?`}
150+
</Modal>
128151
<Table
129152
{...collectionProps}
130153
variant="full-page"
@@ -211,7 +234,7 @@ export default function Sessions(props: SessionsProps) {
211234
iconAlt="Delete all sessions"
212235
iconName="delete-marker"
213236
variant="inline-link"
214-
onClick={() => deleteUserSessions()}
237+
onClick={() => setDeleteAllSessions(true)}
215238
>
216239
Delete all sessions
217240
</Button>

0 commit comments

Comments
 (0)