Skip to content

Commit a4ed1d3

Browse files
authored
feat: Subject Delection Bug (#27)
1 parent 0210060 commit a4ed1d3

File tree

5 files changed

+54
-3
lines changed

5 files changed

+54
-3
lines changed

audire/audire-dashboard/modules/course-subjects/SubjectListView.tsx

+25-1
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,21 @@ import ConfirmDeleteDialog from 'components/ConfirmDeleteDialog';
33
import React, { FC, useState } from 'react';
44
import SubjectFormDialog from './SubjectFormDialogue';
55

6-
import { Button, Table, TableBody, TableCell, TableColumn, TableHeader, TableRow, Tooltip, useDisclosure } from '@nextui-org/react';
6+
import {
7+
Button,
8+
Table,
9+
TableBody,
10+
TableCell,
11+
TableColumn,
12+
TableHeader,
13+
TableRow,
14+
Tooltip,
15+
useDisclosure,
16+
} from '@nextui-org/react';
717
import { CiEdit } from 'react-icons/ci';
818
import { IoMdAdd } from 'react-icons/io';
919
import { MdDelete } from 'react-icons/md';
20+
import { Zoom, toast } from 'react-toastify';
1021

1122
import { useSubjectDelete, useSubjects } from '@learning-app/syllabus';
1223
import CourseStageSelector from 'components/CourseStageSelector';
@@ -97,6 +108,19 @@ const SubjectListView: FC = () => {
97108
})
98109
.catch((error) => {
99110
console.error('Delete error:', error);
111+
if (error.code === '23503') {
112+
toast.error('Please delete the topics under this subject ', {
113+
position: 'bottom-center',
114+
autoClose: 3000,
115+
hideProgressBar: false,
116+
closeOnClick: true,
117+
pauseOnHover: true,
118+
draggable: true,
119+
progress: undefined,
120+
theme: 'colored',
121+
transition: Zoom,
122+
});
123+
}
100124
});
101125
}
102126
}}

audire/audire-dashboard/pages/_app.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { NextPage } from 'next';
66
import AuthorizedLayout from 'layouts/authorized/AuthorizedLayout';
77
import { NextUIProvider } from '@nextui-org/react';
88
import { NextSupabaseProvider } from '@learning-app/supabase';
9+
import { ToastContainer } from 'react-toastify';
910

1011
export type NextPageWithLayout<P = object, IP = P> = NextPage<P, IP> & {
1112
getLayout?: (page: ReactElement) => ReactNode;
@@ -25,9 +26,11 @@ function MyApp({ Component, pageProps }: AppPropsWithLayout) {
2526
<Head>
2627
<title>Welcome to audire-dashboard!</title>
2728
</Head>
29+
2830
<NextUIProvider>
2931
<main className="app">{getLayout(<Component {...pageProps} />)}</main>
3032
</NextUIProvider>
33+
<ToastContainer />
3134
</NextSupabaseProvider>
3235
);
3336
}
+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
@tailwind base;
22
@tailwind components;
33
@tailwind utilities;
4+
5+
@import 'react-toastify/dist/ReactToastify.css';

package-lock.json

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"expo-dev-client": "~2.4.12",
3232
"expo-linking": "~5.0.2",
3333
"expo-router": "^2.0.0",
34+
"expo-screen-capture": "~5.3.0",
3435
"expo-screen-orientation": "~6.0.6",
3536
"expo-splash-screen": "~0.20.5",
3637
"expo-status-bar": "~1.6.0",
@@ -53,12 +54,12 @@
5354
"react-native-tab-view": "^3.5.2",
5455
"react-native-url-polyfill": "^2.0.0",
5556
"react-native-web": "~0.19.6",
57+
"react-toastify": "^10.0.4",
5658
"swr": "^2.2.4",
5759
"tslib": "^2.3.0",
5860
"xstate": "^5.4.1",
5961
"zod": "^3.22.4",
60-
"zod-validation-error": "^2.1.0",
61-
"expo-screen-capture": "~5.3.0"
62+
"zod-validation-error": "^2.1.0"
6263
},
6364
"devDependencies": {
6465
"@babel/core": "^7.14.5",

0 commit comments

Comments
 (0)