diff --git a/src/components/pages/repo/new-build-form/new-build-form.jsx b/src/components/pages/repo/new-build-form/new-build-form.jsx index 219263bc..5a4ef744 100644 --- a/src/components/pages/repo/new-build-form/new-build-form.jsx +++ b/src/components/pages/repo/new-build-form/new-build-form.jsx @@ -15,12 +15,10 @@ const NewBuildForm = ({ handleSubmit, handleCancel, target, - commit, parameters }) => { const [state, setState] = useState({ target, - commit, parameters, }); const [parameterState, setParameterState] = useState({ @@ -115,7 +113,6 @@ const NewBuildForm = ({ NewBuildForm.defaultProps = { target: "", - commit: "", parameters: [], }; @@ -123,7 +120,6 @@ NewBuildForm.propTypes = { handleSubmit: PropTypes.func.isRequired, handleCancel: PropTypes.func.isRequired, target: PropTypes.string, - commit: PropTypes.string, parameters: PropTypes.arrayOf( PropTypes.shape({ key: PropTypes.string, diff --git a/src/pages/build/build.jsx b/src/pages/build/build.jsx index 713f246b..39f2cd3d 100644 --- a/src/pages/build/build.jsx +++ b/src/pages/build/build.jsx @@ -77,7 +77,20 @@ export default function Build({ user, userIsAdminOrHasWritePerm }) { const [state, setState] = useState(RESOLVED); const [view, setView] = useState(LOGS_VIEW); - const [isModalShowing, toggleModal] = useModal(); + const { search } = useLocation(); + const queryParams = new URLSearchParams(search); + let action = 'promote' + let target = ''; + let parameters = []; + try { + action = queryParams.get('action') || 'promote'; + target = queryParams.get('target') || ''; + parameters = queryParams.get('parameters') ? JSON.parse(queryParams.get('parameters')) : []; + } catch (e) { + console.warn('Invalid query parameters', e) + } + // If there is a target url param, show the new build modal on load + const [isModalShowing, toggleModal] = useModal(!!queryParams.get('target')); const { showError } = useToast(); @@ -279,7 +292,7 @@ export default function Build({ user, userIsAdminOrHasWritePerm }) { isShowing={isModalShowing} hide={toggleModal} > - + ); diff --git a/src/pages/build/deployment-form/deployment-form.jsx b/src/pages/build/deployment-form/deployment-form.jsx index c54ffa67..61280b49 100644 --- a/src/pages/build/deployment-form/deployment-form.jsx +++ b/src/pages/build/deployment-form/deployment-form.jsx @@ -9,11 +9,11 @@ import css from './deployment-form.module.scss'; const cx = classNames.bind(css); -const DeploymentForm = ({ handleSubmit, handleCancel }) => { +const DeploymentForm = ({ handleSubmit, handleCancel, action, target, parameters }) => { const [state, setState] = useState({ - action: 'promote', - target: '', - parameters: [], + action, + target, + parameters, }); const [parameterState, setParameterState] = useState({ key: '', @@ -129,9 +129,24 @@ const DeploymentForm = ({ handleSubmit, handleCancel }) => { ); }; +NewBuildForm.defaultProps = { + action: "promote", + target: "", + parameters: [], +}; + DeploymentForm.propTypes = { handleSubmit: PropTypes.func.isRequired, handleCancel: PropTypes.func.isRequired, + action: PropTypes.string, + target: PropTypes.string, + parameters: PropTypes.arrayOf( + PropTypes.shape({ + key: PropTypes.string, + value: PropTypes.string, + id: PropTypes.string, + }) + ), }; export default DeploymentForm; diff --git a/src/pages/repo/repo.jsx b/src/pages/repo/repo.jsx index 6faf0611..d5b27bbb 100644 --- a/src/pages/repo/repo.jsx +++ b/src/pages/repo/repo.jsx @@ -65,11 +65,9 @@ const Repo = ({ user }) => { const { search } = useLocation(); const queryParams = new URLSearchParams(search); let target = ''; - let commit = ''; let parameters = []; try { target = queryParams.get('target') || ''; - commit = queryParams.get('commit') || ''; parameters = queryParams.get('parameters') ? JSON.parse(queryParams.get('parameters')) : []; } catch (e) { console.warn('Invalid query parameters', e) @@ -215,7 +213,7 @@ const Repo = ({ user }) => { isShowing={isModalShowing} hide={toggleModal} > - +