Skip to content

Commit dd7483e

Browse files
feat(examples): update antd examples with the new notification (#5095)
* feat(examples): update antd examples with new notification * feat(examples): update antd examples with new notification * fix(examples): with-nextjs-appdir not works with Antd App
1 parent 92a61aa commit dd7483e

File tree

82 files changed

+5765
-5065
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+5765
-5065
lines changed

examples/access-control-casbin/src/App.tsx

Lines changed: 137 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { CanAccess, GitHubBanner, Refine } from "@refinedev/core";
22
import {
3-
notificationProvider,
3+
useNotificationProvider,
44
ThemedLayoutV2,
55
ErrorComponent,
66
RefineThemes,
@@ -13,7 +13,7 @@ import routerProvider, {
1313
} from "@refinedev/react-router-v6";
1414
import { BrowserRouter, Routes, Route, Outlet } from "react-router-dom";
1515
import { newEnforcer } from "casbin";
16-
import { ConfigProvider } from "antd";
16+
import { ConfigProvider, App as AntdApp } from "antd";
1717
import "@refinedev/antd/dist/reset.css";
1818

1919
import { model, adapter } from "./accessControl";
@@ -36,130 +36,153 @@ const App: React.FC = () => {
3636
<BrowserRouter>
3737
<GitHubBanner />
3838
<ConfigProvider theme={RefineThemes.Blue}>
39-
<Refine
40-
routerProvider={routerProvider}
41-
dataProvider={dataProvider(API_URL)}
42-
accessControlProvider={{
43-
can: async ({ action, params, resource }) => {
44-
const enforcer = await newEnforcer(model, adapter);
45-
if (
46-
action === "delete" ||
47-
action === "edit" ||
48-
action === "show"
49-
) {
50-
return Promise.resolve({
51-
can: await enforcer.enforce(
52-
role,
53-
`${resource}/${params?.id}`,
54-
action,
55-
),
56-
});
57-
}
58-
if (action === "field") {
59-
return Promise.resolve({
39+
<AntdApp>
40+
<Refine
41+
routerProvider={routerProvider}
42+
dataProvider={dataProvider(API_URL)}
43+
accessControlProvider={{
44+
can: async ({ action, params, resource }) => {
45+
const enforcer = await newEnforcer(
46+
model,
47+
adapter,
48+
);
49+
if (
50+
action === "delete" ||
51+
action === "edit" ||
52+
action === "show"
53+
) {
54+
return Promise.resolve({
55+
can: await enforcer.enforce(
56+
role,
57+
`${resource}/${params?.id}`,
58+
action,
59+
),
60+
});
61+
}
62+
if (action === "field") {
63+
return Promise.resolve({
64+
can: await enforcer.enforce(
65+
role,
66+
`${resource}/${params?.field}`,
67+
action,
68+
),
69+
});
70+
}
71+
return {
6072
can: await enforcer.enforce(
6173
role,
62-
`${resource}/${params?.field}`,
74+
resource,
6375
action,
6476
),
65-
});
66-
}
67-
return {
68-
can: await enforcer.enforce(
69-
role,
70-
resource,
71-
action,
72-
),
73-
};
74-
},
75-
}}
76-
resources={[
77-
{
78-
name: "posts",
79-
list: "/posts",
80-
show: "/posts/show/:id",
81-
create: "/posts/create",
82-
edit: "/posts/edit/:id",
83-
meta: {
84-
canDelete: true,
77+
};
8578
},
86-
},
87-
{
88-
name: "users",
89-
list: "/users",
90-
show: "/users/show/:id",
91-
create: "/users/create",
92-
edit: "/users/edit/:id",
93-
},
94-
{
95-
name: "categories",
96-
list: "/categories",
97-
show: "/categories/show/:id",
98-
create: "/categories/create",
99-
edit: "/categories/edit/:id",
100-
},
101-
]}
102-
notificationProvider={notificationProvider}
103-
options={{
104-
syncWithLocation: true,
105-
warnWhenUnsavedChanges: true,
106-
}}
107-
>
108-
<Routes>
109-
<Route
110-
element={
111-
<ThemedLayoutV2
112-
Header={() => <Header role={role} />}
113-
>
114-
<CanAccess>
115-
<Outlet />
116-
</CanAccess>
117-
</ThemedLayoutV2>
118-
}
119-
>
79+
}}
80+
resources={[
81+
{
82+
name: "posts",
83+
list: "/posts",
84+
show: "/posts/show/:id",
85+
create: "/posts/create",
86+
edit: "/posts/edit/:id",
87+
meta: {
88+
canDelete: true,
89+
},
90+
},
91+
{
92+
name: "users",
93+
list: "/users",
94+
show: "/users/show/:id",
95+
create: "/users/create",
96+
edit: "/users/edit/:id",
97+
},
98+
{
99+
name: "categories",
100+
list: "/categories",
101+
show: "/categories/show/:id",
102+
create: "/categories/create",
103+
edit: "/categories/edit/:id",
104+
},
105+
]}
106+
notificationProvider={useNotificationProvider}
107+
options={{
108+
syncWithLocation: true,
109+
warnWhenUnsavedChanges: true,
110+
}}
111+
>
112+
<Routes>
120113
<Route
121-
index
122114
element={
123-
<NavigateToResource resource="posts" />
115+
<ThemedLayoutV2
116+
Header={() => <Header role={role} />}
117+
>
118+
<CanAccess>
119+
<Outlet />
120+
</CanAccess>
121+
</ThemedLayoutV2>
124122
}
125-
/>
123+
>
124+
<Route
125+
index
126+
element={
127+
<NavigateToResource resource="posts" />
128+
}
129+
/>
126130

127-
<Route path="/posts">
128-
<Route index element={<PostList />} />
129-
<Route path="create" element={<PostCreate />} />
130-
<Route path="edit/:id" element={<PostEdit />} />
131-
<Route path="show/:id" element={<PostShow />} />
132-
</Route>
131+
<Route path="/posts">
132+
<Route index element={<PostList />} />
133+
<Route
134+
path="create"
135+
element={<PostCreate />}
136+
/>
137+
<Route
138+
path="edit/:id"
139+
element={<PostEdit />}
140+
/>
141+
<Route
142+
path="show/:id"
143+
element={<PostShow />}
144+
/>
145+
</Route>
133146

134-
<Route path="/users">
135-
<Route index element={<UserList />} />
136-
<Route path="create" element={<UserCreate />} />
137-
<Route path="edit/:id" element={<UserEdit />} />
138-
<Route path="show/:id" element={<UserShow />} />
139-
</Route>
147+
<Route path="/users">
148+
<Route index element={<UserList />} />
149+
<Route
150+
path="create"
151+
element={<UserCreate />}
152+
/>
153+
<Route
154+
path="edit/:id"
155+
element={<UserEdit />}
156+
/>
157+
<Route
158+
path="show/:id"
159+
element={<UserShow />}
160+
/>
161+
</Route>
140162

141-
<Route path="/categories">
142-
<Route index element={<CategoryList />} />
143-
<Route
144-
path="create"
145-
element={<CategoryCreate />}
146-
/>
147-
<Route
148-
path="edit/:id"
149-
element={<CategoryEdit />}
150-
/>
151-
<Route
152-
path="show/:id"
153-
element={<CategoryShow />}
154-
/>
155-
</Route>
163+
<Route path="/categories">
164+
<Route index element={<CategoryList />} />
165+
<Route
166+
path="create"
167+
element={<CategoryCreate />}
168+
/>
169+
<Route
170+
path="edit/:id"
171+
element={<CategoryEdit />}
172+
/>
173+
<Route
174+
path="show/:id"
175+
element={<CategoryShow />}
176+
/>
177+
</Route>
156178

157-
<Route path="*" element={<ErrorComponent />} />
158-
</Route>
159-
</Routes>
160-
<UnsavedChangesNotifier />
161-
<DocumentTitleHandler />
162-
</Refine>
179+
<Route path="*" element={<ErrorComponent />} />
180+
</Route>
181+
</Routes>
182+
<UnsavedChangesNotifier />
183+
<DocumentTitleHandler />
184+
</Refine>
185+
</AntdApp>
163186
</ConfigProvider>
164187
</BrowserRouter>
165188
);

0 commit comments

Comments
 (0)