Skip to content

Commit

Permalink
Merge pull request #212 from uselagoon/refactor_variables
Browse files Browse the repository at this point in the history
Refactor: Refactors Variables handling for unpermissioned users
  • Loading branch information
DaveDarsa authored Mar 1, 2024
2 parents 6f86991 + 7687490 commit b038440
Show file tree
Hide file tree
Showing 4 changed files with 256 additions and 424 deletions.
2 changes: 1 addition & 1 deletion cypress/support/actions/variables/VariablesAction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default class VariablesAction {
}

doAddVariable(name: string, value: string) {
environment.getAddButton().click();
environment.getAddButton().first().click();

cy.get('.react-select__indicator').click({ force: true });
cy.get('#react-select-2-option-1').click();
Expand Down
25 changes: 21 additions & 4 deletions src/components/AddVariable/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Mutation } from 'react-apollo';
import ButtonBootstrap from 'react-bootstrap/Button';
import ReactSelect from 'react-select';

import { LoadingOutlined } from '@ant-design/icons';
import { Popconfirm } from 'antd';
import withLogic from 'components/AddVariable/logic';
import Button from 'components/Button';
Expand Down Expand Up @@ -31,7 +32,6 @@ export const AddVariable = ({
varEnvironment,
varValues,
varTarget,
noVars,
varName,
varValue,
varScope,
Expand All @@ -50,6 +50,9 @@ export const AddVariable = ({
setEnvironmentErrorAlert,
setProjectErrorAlert,
action,
loading,
prjEnvValues,
envValues,
}) => {
const [updateName, setUpdateName] = useState(varName);
const [updateValue, setUpdateValue] = useState(varValue);
Expand All @@ -73,22 +76,36 @@ export const AddVariable = ({
setProjectErrorAlert ? setProjectErrorAlert(true) : setEnvironmentErrorAlert(true);
};

const handlePermissionCheck = () => {
let waitForGQL = setTimeout(() => {
openModal();
}, [1000]);
if (prjEnvValues || envValues) {
clearTimeout(waitForGQL);
openModal();
}
};

return (
<NewVariable>
{icon ? (
<Button variant="white" icon={icon} action={openModal}>
Update
</Button>
) : (
<ButtonBootstrap data-cy="addVariable" onClick={openModal}>
) : !loading ? (
<ButtonBootstrap data-cy="addVariable" onClick={handlePermissionCheck}>
Add
</ButtonBootstrap>
) : (
<ButtonBootstrap className="add-variable">
<LoadingOutlined />
</ButtonBootstrap>
)}
<Modal isOpen={open} onRequestClose={closeModal} contentLabel={`Confirm`} variant={'large'}>
<NewVariableModal>
<div className="variable-target">
<span className="variable-target">
{noVars || !updateName ? `Add ${varTarget} Variable` : `Update ${varTarget} Variable`}
{!updateName ? `Add ${varTarget} Variable` : `Update ${varTarget} Variable`}
</span>
</div>
<div className="var-modal">
Expand Down
Loading

0 comments on commit b038440

Please sign in to comment.