mirror of https://github.com/msgbyte/tailchat
				
				
				
			feat(admin-next): add reset password
							parent
							
								
									769f1f9b6c
								
							
						
					
					
						commit
						26f4c6a864
					
				@ -0,0 +1,64 @@
 | 
			
		||||
import React from 'react';
 | 
			
		||||
import {
 | 
			
		||||
  createTextField,
 | 
			
		||||
  ListTable,
 | 
			
		||||
  Message,
 | 
			
		||||
  Modal,
 | 
			
		||||
  useResourceContext,
 | 
			
		||||
  useTranslation,
 | 
			
		||||
  useUpdate,
 | 
			
		||||
} from 'tushan';
 | 
			
		||||
import { userFields } from '../fields';
 | 
			
		||||
 | 
			
		||||
export const UserList: React.FC = React.memo(() => {
 | 
			
		||||
  const { t } = useTranslation();
 | 
			
		||||
  const [update] = useUpdate();
 | 
			
		||||
  const resource = useResourceContext();
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <ListTable
 | 
			
		||||
      filter={[
 | 
			
		||||
        createTextField('q', {
 | 
			
		||||
          label: 'Search',
 | 
			
		||||
        }),
 | 
			
		||||
      ]}
 | 
			
		||||
      fields={userFields}
 | 
			
		||||
      action={{
 | 
			
		||||
        create: true,
 | 
			
		||||
        detail: true,
 | 
			
		||||
        edit: true,
 | 
			
		||||
        delete: true,
 | 
			
		||||
        export: true,
 | 
			
		||||
        custom: [
 | 
			
		||||
          {
 | 
			
		||||
            key: 'resetPassword',
 | 
			
		||||
            label: t('custom.action.resetPassword'),
 | 
			
		||||
            onClick: (record: any) => {
 | 
			
		||||
              const { close } = Modal.confirm({
 | 
			
		||||
                title: t('tushan.common.confirmTitle'),
 | 
			
		||||
                content: t('tushan.common.confirmContent'),
 | 
			
		||||
                onConfirm: async (e) => {
 | 
			
		||||
                  try {
 | 
			
		||||
                    await update(resource, {
 | 
			
		||||
                      id: record.id,
 | 
			
		||||
                      data: {
 | 
			
		||||
                        password:
 | 
			
		||||
                          '$2a$10$eSebpg0CEvsbDC7j1NxB2epMUkYwKhfT8vGdPQYkfeXYMqM8HjnpW', // 123456789
 | 
			
		||||
                      },
 | 
			
		||||
                    });
 | 
			
		||||
                    Message.success(t('tushan.common.success'));
 | 
			
		||||
                    close();
 | 
			
		||||
                  } catch (err) {
 | 
			
		||||
                    console.error(err);
 | 
			
		||||
                    Message.error(String(err));
 | 
			
		||||
                  }
 | 
			
		||||
                },
 | 
			
		||||
              });
 | 
			
		||||
            },
 | 
			
		||||
          },
 | 
			
		||||
        ],
 | 
			
		||||
      }}
 | 
			
		||||
    />
 | 
			
		||||
  );
 | 
			
		||||
});
 | 
			
		||||
UserList.displayName = 'UserList';
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue