56 lines
2.1 KiB
JavaScript
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;
|