Skip to content

Commit

Permalink
feat: add loading for open project (#2707)
Browse files Browse the repository at this point in the history
  • Loading branch information
alvinhui authored and chenbin92 committed Aug 14, 2019
1 parent 3760bea commit 96690ce
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import Modal from '@components/Modal';
import showMessage from '@utils/showMessage';
import styles from './index.module.scss';

const SelectWorkFolderModal = ({ on, onCancel, onOk }) => {
const SelectWorkFolderModal = ({ on, onCancel, onOk, loading }) => {
const [workFolder, setWorkFolder] = useState({});
const {path: workPath, directories = [], disabled = true} = workFolder;

Expand Down Expand Up @@ -70,9 +70,8 @@ const SelectWorkFolderModal = ({ on, onCancel, onOk }) => {
title="打开项目"
visible={on}
onCancel={onCancel}
onOk={async () => {
await onOk(workPath);
}}
onOk={() => onOk(workPath)}
okProps={{loading}}
>
<div className={styles.wrap}>
<div className={styles.bar}>
Expand Down Expand Up @@ -117,10 +116,15 @@ const SelectWorkFolderModal = ({ on, onCancel, onOk }) => {
);
};

SelectWorkFolderModal.defaultProps = {
loading: false,
};

SelectWorkFolderModal.propTypes = {
on: PropTypes.bool.isRequired,
onCancel: PropTypes.func.isRequired,
onOk: PropTypes.func.isRequired,
loading: PropTypes.bool,
};

export default SelectWorkFolderModal;
20 changes: 18 additions & 2 deletions packages/iceworks-client/src/hooks/useProject.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ function useProject({ panelStores } = {}) {
const {
on: onOpenProjectModal,
setModal: setOpenProjectModal,
loading: openProjectLoading,
setLoading: setOpenProjectLoading,
} = useModal();
const {
on: onDeleteProjectModal,
Expand Down Expand Up @@ -69,6 +71,19 @@ function useProject({ panelStores } = {}) {
}
}

async function onAddProject(path) {
setOpenProjectLoading(true);

try {
await addProject(path);
setOpenProjectModal(false);
} catch (err) {
showMessage(err);
}

setOpenProjectLoading(false);
}

async function addProject(path) {
await projectsStore.add(path);
await refreshProjects();
Expand All @@ -77,7 +92,6 @@ function useProject({ panelStores } = {}) {
module: 'project',
action: 'add-project',
});
setOpenProjectModal(false);
}

async function deleteProject(params) {
Expand Down Expand Up @@ -163,7 +177,6 @@ function useProject({ panelStores } = {}) {
refreshProjects,
refreshProject,
createProject,
addProject,
deleteProject,
sortProjectPanel,

Expand All @@ -175,10 +188,13 @@ function useProject({ panelStores } = {}) {
},
onOpenProjectModal,
setOpenProjectModal,
openProjectLoading,
setOpenProjectLoading,
onDeleteProjectModal,
setDeleteProjectModal,

// event handles
onAddProject,
onCreateProject,
onOpenProject,
onDeleteProject,
Expand Down
6 changes: 4 additions & 2 deletions packages/iceworks-client/src/pages/Project/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,10 @@ const Project = ({ history, intl }) => {

refreshProjects,
refreshProjectStore,
addProject,
deleteProject,
sortProjectPanel,

onAddProject,
onSwitchProject,
onDeleteProject,
onOpenProject,
Expand All @@ -120,6 +120,7 @@ const Project = ({ history, intl }) => {

onOpenProjectModal,
setOpenProjectModal,
openProjectLoading,
onDeleteProjectModal,
setDeleteProjectModal,
onCreateProjectModal,
Expand Down Expand Up @@ -248,7 +249,8 @@ const Project = ({ history, intl }) => {
<SelectWorkFolderModal
on={onOpenProjectModal}
onCancel={() => setOpenProjectModal(false)}
onOk={addProject}
onOk={onAddProject}
loading={openProjectLoading}
/>
<DeleteProjectModal
on={onDeleteProjectModal}
Expand Down

0 comments on commit 96690ce

Please # to comment.