oak-general-business/es/components/oauth/management/oauthApps/web.pc.js

56 lines
2.1 KiB
JavaScript

import React from 'react';
import Styles from './styles.module.less';
import { Button, Modal } from 'antd';
import AppUpsert from "./upsert";
import ListPro from 'oak-frontend-base/es/components/listPro';
const OauthProvider = (props) => {
const { oakFullpath, systemId } = props.data;
const { list, oakLoading } = props.data;
const { t, addItem, removeItem, execute, clean } = props.methods;
const attrs = [
"id", "name", "description", "redirectUris",
"logo", "isConfidential", "scopes",
"ableState", "requirePKCE",
];
const [upsertId, setUpsertId] = React.useState(null);
const handleAction = (row, action) => {
switch (action) {
case "update": {
setUpsertId(row.id);
break;
}
case "remove": {
Modal.confirm({
title: t('confirm.deleteTitle'),
content: t('confirm.deleteContent'),
onOk: () => {
removeItem(row.id);
execute();
}
});
break;
}
}
};
return (<>
{list && (<ListPro entity='oauthApplication' attributes={attrs} data={list} loading={oakLoading} oakPath={`${oakFullpath}`} onAction={handleAction} extraContent={<div className={Styles.actions}>
<Button type="primary" onClick={() => {
setUpsertId(addItem({
systemId: systemId,
isConfidential: true,
}));
}}>
{t('common::action.create')}
</Button>
</div>}/>)}
{upsertId && (<AppUpsert oakPath={`${oakFullpath}.${upsertId}`} oakId={upsertId} open={!!upsertId} onCancel={() => {
clean();
setUpsertId(null);
}} onOk={() => {
execute();
setUpsertId(null);
}}/>)}
</>);
};
export default OauthProvider;