You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by mi...@apache.org on 2024/05/27 07:07:41 UTC
(incubator-devlake) 01/01: fix: not refresh project when updating plugin linker
This is an automated email from the ASF dual-hosted git repository.
mintsweet pushed a commit to branch fix-linker-update
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit e311d12bb68755fcf35fa0918f61f560e17e95d8
Author: mintsweet <0x...@gmail.com>
AuthorDate: Mon May 27 19:07:27 2024 +1200
fix: not refresh project when updating plugin linker
---
.../src/routes/project/detail/settings-panel.tsx | 38 +++++++++++++++-------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/config-ui/src/routes/project/detail/settings-panel.tsx b/config-ui/src/routes/project/detail/settings-panel.tsx
index 0cd2f006e..df206cf7f 100644
--- a/config-ui/src/routes/project/detail/settings-panel.tsx
+++ b/config-ui/src/routes/project/detail/settings-panel.tsx
@@ -38,19 +38,30 @@ interface Props {
export const SettingsPanel = ({ project, onRefresh }: Props) => {
const [name, setName] = useState('');
- const [enableDora, setEnableDora] = useState(false);
- const [associatePrWithIssues, setAssociatePrWithIssues] = useState(false);
- const [regexPrIssue, setRegexPrIssue] = useState('');
+ const [dora, setDora] = useState({
+ enable: false,
+ });
+ const [linker, setLinker] = useState({
+ enable: false,
+ prToIssueRegexp: '',
+ });
const [operating, setOperating] = useState(false);
const [open, setOpen] = useState(false);
const navigate = useNavigate();
useEffect(() => {
- const doraMetrics = project.metrics.find((ms: any) => ms.pluginName === 'dora');
+ const dora = project.metrics.find((ms) => ms.pluginName === 'dora');
+ const linker = project.metrics.find((ms) => ms.pluginName === 'linker');
setName(project.name);
- setEnableDora(doraMetrics?.enable ?? false);
+ setDora({
+ enable: dora?.enable ?? false,
+ });
+ setLinker({
+ enable: linker?.enable ?? false,
+ prToIssueRegexp: linker?.pluginOption?.prToIssueRegexp ?? '',
+ });
}, [project]);
const handleUpdate = async () => {
@@ -68,14 +79,14 @@ export const SettingsPanel = ({ project, onRefresh }: Props) => {
{
pluginName: 'dora',
pluginOption: {},
- enable: enableDora,
+ enable: dora.enable,
},
{
pluginName: 'linker',
pluginOption: {
- prToIssueRegexp: regexPrIssue,
+ prToIssueRegexp: linker.prToIssueRegexp,
},
- enable: associatePrWithIssues,
+ enable: linker.enable,
},
],
}),
@@ -118,7 +129,7 @@ export const SettingsPanel = ({ project, onRefresh }: Props) => {
</Block>
<Block
title={
- <Checkbox checked={enableDora} onChange={(e) => setEnableDora(e.target.checked)}>
+ <Checkbox checked={dora.enable} onChange={(e) => setDora({ enable: e.target.checked })}>
Enable DORA Metrics
</Checkbox>
}
@@ -126,7 +137,7 @@ export const SettingsPanel = ({ project, onRefresh }: Props) => {
/>
<Block
title={
- <Checkbox checked={associatePrWithIssues} onChange={(e) => setAssociatePrWithIssues(e.target.checked)}>
+ <Checkbox checked={linker.enable} onChange={(e) => setLinker({ ...linker, enable: e.target.checked })}>
Associate pull requests with issues
</Checkbox>
}
@@ -145,8 +156,11 @@ export const SettingsPanel = ({ project, onRefresh }: Props) => {
</span>
}
>
- {associatePrWithIssues && (
- <Input style={{ width: 600 }} value={regexPrIssue} onChange={(e) => setRegexPrIssue(e.target.value)} />
+ {linker.enable && (
+ <Input
+ value={linker.prToIssueRegexp}
+ onChange={(e) => setLinker({ ...linker, prToIssueRegexp: e.target.value })}
+ />
)}
</Block>
<Block>