|
|
|
@ -1,4 +1,4 @@
|
|
|
|
import React, { useState } from 'react';
|
|
|
|
import React, { useState, useEffect } from 'react';
|
|
|
|
import styles from './style/index.module.less';
|
|
|
|
import styles from './style/index.module.less';
|
|
|
|
import { Button, Input, Modal, Radio, Space } from '@arco-design/web-react';
|
|
|
|
import { Button, Input, Modal, Radio, Space } from '@arco-design/web-react';
|
|
|
|
import { IconSearch } from '@arco-design/web-react/icon';
|
|
|
|
import { IconSearch } from '@arco-design/web-react/icon';
|
|
|
|
@ -8,6 +8,12 @@ import ConfigTutorial from '@/pages/componentDevelopment/componentEnv/configTuto
|
|
|
|
|
|
|
|
|
|
|
|
const ComponentDeployment = () => {
|
|
|
|
const ComponentDeployment = () => {
|
|
|
|
const [searchKeyword, setSearchKeyword] = useState('');
|
|
|
|
const [searchKeyword, setSearchKeyword] = useState('');
|
|
|
|
|
|
|
|
const [debouncedKeyword, setDebouncedKeyword] = useState('');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
|
|
const timer = setTimeout(() => setDebouncedKeyword(searchKeyword), 500);
|
|
|
|
|
|
|
|
return () => clearTimeout(timer);
|
|
|
|
|
|
|
|
}, [searchKeyword]);
|
|
|
|
const [selectedStatus, setSelectedStatus] = useState<string | undefined>(undefined);
|
|
|
|
const [selectedStatus, setSelectedStatus] = useState<string | undefined>(undefined);
|
|
|
|
const [tutorialVisible, setTutorialVisible] = useState(false);
|
|
|
|
const [tutorialVisible, setTutorialVisible] = useState(false);
|
|
|
|
|
|
|
|
|
|
|
|
@ -63,7 +69,7 @@ const ComponentDeployment = () => {
|
|
|
|
</Space>
|
|
|
|
</Space>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className={styles['content']}>
|
|
|
|
<div className={styles['content']}>
|
|
|
|
<CollapseList searchKeyword={searchKeyword} runStatus={selectedStatus} />
|
|
|
|
<CollapseList searchKeyword={debouncedKeyword} runStatus={selectedStatus} />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|