@@ -4,7 +4,8 @@ import Row from 'react-bootstrap/Row';
44import Col from 'react-bootstrap/Col' ;
55import { useHookComponent , useHandle } from 'reactium-core/sdk' ;
66import { useSyncQuery } from '@reactium/graphql' ;
7- import * as DeleteUser from './User/DeleteUser/DeleteUser' ;
7+ import { DeleteUser } from './User/DeleteUser/DeleteUser' ;
8+ import { EditUser } from './User/EditUser/EditUser' ;
89
910export const Dashboard = ( ) => {
1011 const PostList = useHookComponent ( 'PostList' ) ;
@@ -16,6 +17,7 @@ export const Dashboard = () => {
1617 id
1718 name
1819 email
20+ age
1921 }
2022
2123 posts {
@@ -33,37 +35,67 @@ export const Dashboard = () => {
3335 ) ;
3436
3537 const Modal = useHandle ( 'Modal' ) ;
36- const confirmDelete = ( user ) => {
37- Modal . set (
38- {
39- header : < DeleteUser . Header user = { user } /> ,
40- body : < DeleteUser . Body user = { user } /> ,
41- footer : (
42- < DeleteUser . Footer
43- user = { user }
44- onCancel = { ( ) => Modal . close ( ) }
45- onSuccess = { async ( ) => {
46- const client = handle . get ( 'client' ) ;
47- await client . mutate ( {
48- mutation : gql `
49- mutation DeleteUser($id: ID!) {
50- deleteUser(id: $id) {
51- success
52- message
53- }
54- }
55- ` ,
56- variables : { id : user . id } ,
57- } ) ;
38+ const editUser = async ( user = { } ) => {
39+ const saveUser = async ( userObj ) => {
40+ console . log ( 'saveUser' , userObj ) ;
41+ const client = handle . get ( 'client' ) ;
42+ await client . mutate ( {
43+ mutation : gql `
44+ mutation SaveUser($userObj: SaveUserInput) {
45+ saveUser(input: $userObj) {
46+ id
47+ name
48+ email
49+ }
50+ }
51+ ` ,
52+ variables : { userObj } ,
53+ } ) ;
5854
59- Modal . close ( ) ;
60- await handle . refresh ( ) ;
61- } }
62- />
63- ) ,
64- } ,
65- false ,
66- ) ;
55+ Modal . close ( ) ;
56+ await handle . refresh ( ) ;
57+ } ;
58+
59+ Modal . set ( {
60+ content : (
61+ < EditUser
62+ user = { { ...user } }
63+ onCancel = { ( ) => Modal . close ( ) }
64+ onSuccess = { saveUser }
65+ />
66+ ) ,
67+ } ) ;
68+ Modal . open ( ) ;
69+ } ;
70+
71+ const confirmDeleteUser = ( user ) => {
72+ const deleteUser = async ( ) => {
73+ const client = handle . get ( 'client' ) ;
74+ await client . mutate ( {
75+ mutation : gql `
76+ mutation DeleteUser($id: ID!) {
77+ deleteUser(id: $id) {
78+ success
79+ message
80+ }
81+ }
82+ ` ,
83+ variables : { id : user . id } ,
84+ } ) ;
85+
86+ Modal . close ( ) ;
87+ await handle . refresh ( ) ;
88+ } ;
89+
90+ Modal . set ( {
91+ content : (
92+ < DeleteUser
93+ user = { user }
94+ onCancel = { ( ) => Modal . close ( ) }
95+ onSuccess = { deleteUser }
96+ />
97+ ) ,
98+ } ) ;
6799 Modal . open ( ) ;
68100 } ;
69101
@@ -76,7 +108,9 @@ export const Dashboard = () => {
76108 loading = { handle . get ( 'loading' , false ) }
77109 error = { handle . get ( 'error' ) }
78110 users = { handle . get ( 'data.users' , [ ] ) }
79- onDelete = { confirmDelete }
111+ onNew = { editUser }
112+ onEdit = { editUser }
113+ onDelete = { confirmDeleteUser }
80114 />
81115 </ Col >
82116 </ Row >
0 commit comments