Bumps [axios](https://github.com/axios/axios) from 0.27.2 to 1.6.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/axios/axios/releases">axios's releases</a>.</em></p> <blockquote> <h2>Release v1.6.0</h2> <h2>Release notes:</h2> <h3>Bug Fixes</h3> <ul> <li><strong>CSRF:</strong> fixed CSRF vulnerability CVE-2023-45857 (<a href="https://redirect.github.com/axios/axios/issues/6028">#6028</a>) (<a href="96ee232bd3">96ee232</a>)</li> <li><strong>dns:</strong> fixed lookup function decorator to work properly in node v20; (<a href="https://redirect.github.com/axios/axios/issues/6011">#6011</a>) (<a href="5aaff532a6">5aaff53</a>)</li> <li><strong>types:</strong> fix AxiosHeaders types; (<a href="https://redirect.github.com/axios/axios/issues/5931">#5931</a>) (<a href="a1c8ad008b">a1c8ad0</a>)</li> </ul> <h3>PRs</h3> <ul> <li>CVE 2023 45857 ( <a href="https://api.github.com/repos/axios/axios/pulls/6028">#6028</a> )</li> </ul> <pre><code> ⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 </code></pre> <h3>Contributors to this release</h3> <ul> <li><!-- raw HTML omitted --> <a href="https://github.com/DigitalBrainJS" title="+449/-114 ([#6032](https://github.com/axios/axios/issues/6032) [#6021](https://github.com/axios/axios/issues/6021) [#6011](https://github.com/axios/axios/issues/6011) [#5932](https://github.com/axios/axios/issues/5932) [#5931](https://github.com/axios/axios/issues/5931) )">Dmitriy Mozgovoy</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/valentin-panov" title="+4/-4 ([#6028](https://github.com/axios/axios/issues/6028) )">Valentin Panov</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/therealrinku" title="+1/-1 ([#5889](https://github.com/axios/axios/issues/5889) )">Rinku Chaudhari</a></li> </ul> <h2>Release v1.5.1</h2> <h2>Release notes:</h2> <h3>Bug Fixes</h3> <ul> <li><strong>adapters:</strong> improved adapters loading logic to have clear error messages; (<a href="https://redirect.github.com/axios/axios/issues/5919">#5919</a>) (<a href="e4107797a7">e410779</a>)</li> <li><strong>formdata:</strong> fixed automatic addition of the <code>Content-Type</code> header for FormData in non-browser environments; (<a href="https://redirect.github.com/axios/axios/issues/5917">#5917</a>) (<a href="bc9af51b18">bc9af51</a>)</li> <li><strong>headers:</strong> allow <code>content-encoding</code> header to handle case-insensitive values (<a href="https://redirect.github.com/axios/axios/issues/5890">#5890</a>) (<a href="https://redirect.github.com/axios/axios/issues/5892">#5892</a>) (<a href="4c89f25196">4c89f25</a>)</li> <li><strong>types:</strong> removed duplicated code (<a href="9e6205630e">9e62056</a>)</li> </ul> <h3>Contributors to this release</h3> <ul> <li><!-- raw HTML omitted --> <a href="https://github.com/DigitalBrainJS" title="+89/-18 ([#5919](https://github.com/axios/axios/issues/5919) [#5917](https://github.com/axios/axios/issues/5917) )">Dmitriy Mozgovoy</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/DavidJDallas" title="+11/-5 ()">David Dallas</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/fb-sean" title="+2/-8 ()">Sean Sattler</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/0o001" title="+4/-4 ()">Mustafa Ateş Uzun</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/sfc-gh-pmotacki" title="+2/-1 ([#5892](https://github.com/axios/axios/issues/5892) )">Przemyslaw Motacki</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Cadienvan" title="+1/-1 ()">Michael Di Prisco</a></li> </ul> <h2>Release v1.5.0</h2> <h2>Release notes:</h2> <h3>Bug Fixes</h3> <ul> <li><strong>adapter:</strong> make adapter loading error more clear by using platform-specific adapters explicitly (<a href="https://redirect.github.com/axios/axios/issues/5837">#5837</a>) (<a href="9a414bb6c8">9a414bb</a>)</li> <li><strong>dns:</strong> fixed <code>cacheable-lookup</code> integration; (<a href="https://redirect.github.com/axios/axios/issues/5836">#5836</a>) (<a href="b3e327dcc9">b3e327d</a>)</li> <li><strong>headers:</strong> added support for setting header names that overlap with class methods; (<a href="https://redirect.github.com/axios/axios/issues/5831">#5831</a>) (<a href="d8b4ca0ea5">d8b4ca0</a>)</li> <li><strong>headers:</strong> fixed common Content-Type header merging; (<a href="https://redirect.github.com/axios/axios/issues/5832">#5832</a>) (<a href="8fda2766b1">8fda276</a>)</li> </ul> <h3>Features</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/axios/axios/blob/v1.x/CHANGELOG.md">axios's changelog</a>.</em></p> <blockquote> <h1><a href="https://github.com/axios/axios/compare/v1.5.1...v1.6.0">1.6.0</a> (2023-10-26)</h1> <h3>Bug Fixes</h3> <ul> <li><strong>CSRF:</strong> fixed CSRF vulnerability CVE-2023-45857 (<a href="https://redirect.github.com/axios/axios/issues/6028">#6028</a>) (<a href="96ee232bd3">96ee232</a>)</li> <li><strong>dns:</strong> fixed lookup function decorator to work properly in node v20; (<a href="https://redirect.github.com/axios/axios/issues/6011">#6011</a>) (<a href="5aaff532a6">5aaff53</a>)</li> <li><strong>types:</strong> fix AxiosHeaders types; (<a href="https://redirect.github.com/axios/axios/issues/5931">#5931</a>) (<a href="a1c8ad008b">a1c8ad0</a>)</li> </ul> <h3>PRs</h3> <ul> <li>CVE 2023 45857 ( <a href="https://api.github.com/repos/axios/axios/pulls/6028">#6028</a> )</li> </ul> <pre><code> ⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 </code></pre> <h3>Contributors to this release</h3> <ul> <li><!-- raw HTML omitted --> <a href="https://github.com/DigitalBrainJS" title="+449/-114 ([#6032](https://github.com/axios/axios/issues/6032) [#6021](https://github.com/axios/axios/issues/6021) [#6011](https://github.com/axios/axios/issues/6011) [#5932](https://github.com/axios/axios/issues/5932) [#5931](https://github.com/axios/axios/issues/5931) )">Dmitriy Mozgovoy</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/valentin-panov" title="+4/-4 ([#6028](https://github.com/axios/axios/issues/6028) )">Valentin Panov</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/therealrinku" title="+1/-1 ([#5889](https://github.com/axios/axios/issues/5889) )">Rinku Chaudhari</a></li> </ul> <h2><a href="https://github.com/axios/axios/compare/v1.5.0...v1.5.1">1.5.1</a> (2023-09-26)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>adapters:</strong> improved adapters loading logic to have clear error messages; (<a href="https://redirect.github.com/axios/axios/issues/5919">#5919</a>) (<a href="e4107797a7">e410779</a>)</li> <li><strong>formdata:</strong> fixed automatic addition of the <code>Content-Type</code> header for FormData in non-browser environments; (<a href="https://redirect.github.com/axios/axios/issues/5917">#5917</a>) (<a href="bc9af51b18">bc9af51</a>)</li> <li><strong>headers:</strong> allow <code>content-encoding</code> header to handle case-insensitive values (<a href="https://redirect.github.com/axios/axios/issues/5890">#5890</a>) (<a href="https://redirect.github.com/axios/axios/issues/5892">#5892</a>) (<a href="4c89f25196">4c89f25</a>)</li> <li><strong>types:</strong> removed duplicated code (<a href="9e6205630e">9e62056</a>)</li> </ul> <h3>Contributors to this release</h3> <ul> <li><!-- raw HTML omitted --> <a href="https://github.com/DigitalBrainJS" title="+89/-18 ([#5919](https://github.com/axios/axios/issues/5919) [#5917](https://github.com/axios/axios/issues/5917) )">Dmitriy Mozgovoy</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/DavidJDallas" title="+11/-5 ()">David Dallas</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/fb-sean" title="+2/-8 ()">Sean Sattler</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/0o001" title="+4/-4 ()">Mustafa Ateş Uzun</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/sfc-gh-pmotacki" title="+2/-1 ([#5892](https://github.com/axios/axios/issues/5892) )">Przemyslaw Motacki</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Cadienvan" title="+1/-1 ()">Michael Di Prisco</a></li> </ul> <h3>PRs</h3> <ul> <li>CVE 2023 45857 ( <a href="https://api.github.com/repos/axios/axios/pulls/6028">#6028</a> )</li> </ul> <pre><code> ⚠️ Critical vulnerability fix. See https://security.snyk.io/vuln/SNYK-JS-AXIOS-6032459 </code></pre> <h1><a href="https://github.com/axios/axios/compare/v1.4.0...v1.5.0">1.5.0</a> (2023-08-26)</h1> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="f7adacdbaa"><code>f7adacd</code></a> chore(release): v1.6.0 (<a href="https://redirect.github.com/axios/axios/issues/6031">#6031</a>)</li> <li><a href="9917e67cbb"><code>9917e67</code></a> chore(ci): fix release-it arg; (<a href="https://redirect.github.com/axios/axios/issues/6032">#6032</a>)</li> <li><a href="96ee232bd3"><code>96ee232</code></a> fix(CSRF): fixed CSRF vulnerability CVE-2023-45857 (<a href="https://redirect.github.com/axios/axios/issues/6028">#6028</a>)</li> <li><a href="7d45ab2e2a"><code>7d45ab2</code></a> chore(tests): fixed tests to pass in node v19 and v20 with <code>keep-alive</code> enabl...</li> <li><a href="5aaff532a6"><code>5aaff53</code></a> fix(dns): fixed lookup function decorator to work properly in node v20; (<a href="https://redirect.github.com/axios/axios/issues/6011">#6011</a>)</li> <li><a href="a48a63ad82"><code>a48a63a</code></a> chore(docs): added AxiosHeaders docs; (<a href="https://redirect.github.com/axios/axios/issues/5932">#5932</a>)</li> <li><a href="a1c8ad008b"><code>a1c8ad0</code></a> fix(types): fix AxiosHeaders types; (<a href="https://redirect.github.com/axios/axios/issues/5931">#5931</a>)</li> <li><a href="2ac731d605"><code>2ac731d</code></a> chore(docs): update readme.md (<a href="https://redirect.github.com/axios/axios/issues/5889">#5889</a>)</li> <li><a href="88fb52b5fa"><code>88fb52b</code></a> chore(release): v1.5.1 (<a href="https://redirect.github.com/axios/axios/issues/5920">#5920</a>)</li> <li><a href="e4107797a7"><code>e410779</code></a> fix(adapters): improved adapters loading logic to have clear error messages; ...</li> <li>Additional commits viewable in <a href="https://github.com/axios/axios/compare/v0.27.2...v1.6.0">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/appsmithorg/appsmith/network/alerts). </details> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Hetu Nandu <hetunandu@gmail.com> Co-authored-by: Hetu Nandu <hetu@appsmith.com>
270 lines
7.3 KiB
TypeScript
270 lines
7.3 KiB
TypeScript
import React from "react";
|
|
|
|
import {
|
|
deleteWorkspaceLogo,
|
|
saveWorkspace,
|
|
uploadWorkspaceLogo,
|
|
} from "@appsmith/actions/workspaceActions";
|
|
import type { SaveWorkspaceRequest } from "@appsmith/api/WorkspaceApi";
|
|
import { debounce } from "lodash";
|
|
import { Input } from "design-system";
|
|
import { useSelector, useDispatch } from "react-redux";
|
|
import {
|
|
getCurrentError,
|
|
getCurrentWorkspace,
|
|
getWorkspaceLoadingStates,
|
|
} from "@appsmith/selectors/workspaceSelectors";
|
|
import { useParams } from "react-router-dom";
|
|
import styled from "styled-components";
|
|
import type { SetProgress, UploadCallback } from "design-system-old";
|
|
import { FilePickerV2, FileType, Text, TextType } from "design-system-old";
|
|
import { Classes } from "@blueprintjs/core";
|
|
import { getIsFetchingApplications } from "@appsmith/selectors/applicationSelectors";
|
|
import { useMediaQuery } from "react-responsive";
|
|
import type { AxiosProgressEvent } from "axios";
|
|
|
|
// This wrapper ensures that the scroll behaviour is consistent with the other tabs
|
|
const ScrollWrapper = styled.div`
|
|
overflow: auto;
|
|
height: 100%;
|
|
width: 100%;
|
|
`;
|
|
|
|
// trigger tests
|
|
const GeneralWrapper = styled.div<{
|
|
isMobile?: boolean;
|
|
isPortrait?: boolean;
|
|
}>`
|
|
width: 320px;
|
|
/* padding: 20px 0px; */
|
|
/* margin: 0 auto; */
|
|
.upload-form-container {
|
|
.button-wrapper {
|
|
svg {
|
|
width: 40px;
|
|
height: 40px;
|
|
path {
|
|
fill: var(--ads-v2-color-fg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.drag-drop-text {
|
|
color: var(--ads-v2-color-fg);
|
|
+ form a {
|
|
--button-padding: var(--ads-v2-spaces-3) var(--ads-v2-spaces-4);
|
|
background-color: var(--ads-v2-color-bg);
|
|
border: 1px solid var(--ads-v2-color-border);
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: var(--button-padding);
|
|
border-radius: var(--ads-v2-border-radius);
|
|
text-transform: capitalize;
|
|
&:hover {
|
|
background-color: var(--ads-v2-color-bg-subtle);
|
|
color: var(--ads-v2-color-fg);
|
|
border-color: var(--ads-v2-color-border);
|
|
}
|
|
}
|
|
}
|
|
.remove-button {
|
|
a {
|
|
border-radius: var(--ads-v2-border-radius);
|
|
text-transform: capitalize !important;
|
|
}
|
|
}
|
|
`;
|
|
|
|
const InputLabelWrapper = styled.div`
|
|
display: flex;
|
|
align-items: center;
|
|
margin-bottom: 4px;
|
|
span {
|
|
color: var(--ads-v2-color-fg);
|
|
}
|
|
`;
|
|
|
|
const SettingWrapper = styled.div`
|
|
width: 100%;
|
|
display: flex;
|
|
margin-bottom: 15px;
|
|
`;
|
|
|
|
const Loader = styled.div`
|
|
height: 38px;
|
|
width: 320px;
|
|
border-radius: var(--ads-v2-border-radius);
|
|
`;
|
|
|
|
const FilePickerLoader = styled.div`
|
|
height: 190px;
|
|
width: 333px;
|
|
border-radius: var(--ads-v2-border-radius);
|
|
`;
|
|
|
|
// testing
|
|
export const Row = styled.div`
|
|
width: 100%;
|
|
`;
|
|
|
|
export function GeneralSettings() {
|
|
const { workspaceId } = useParams<{ workspaceId: string }>();
|
|
const dispatch = useDispatch();
|
|
const currentWorkspace = useSelector(getCurrentWorkspace).filter(
|
|
(el) => el.id === workspaceId,
|
|
)[0];
|
|
function saveChanges(settings: SaveWorkspaceRequest) {
|
|
dispatch(saveWorkspace(settings));
|
|
}
|
|
|
|
const timeout = 1000;
|
|
|
|
const onWorkspaceNameChange = debounce((newName: string) => {
|
|
saveChanges({
|
|
id: workspaceId as string,
|
|
name: newName,
|
|
});
|
|
}, timeout);
|
|
|
|
const onWebsiteChange = debounce((newWebsite: string) => {
|
|
saveChanges({
|
|
id: workspaceId as string,
|
|
website: newWebsite,
|
|
});
|
|
}, timeout);
|
|
|
|
const onEmailChange = debounce((newEmail: string) => {
|
|
saveChanges({
|
|
id: workspaceId as string,
|
|
email: newEmail,
|
|
});
|
|
}, timeout);
|
|
|
|
const { isFetchingWorkspace } = useSelector(getWorkspaceLoadingStates);
|
|
const logoUploadError = useSelector(getCurrentError);
|
|
|
|
const FileUploader = (
|
|
file: File,
|
|
setProgress: SetProgress,
|
|
onUpload: UploadCallback,
|
|
) => {
|
|
const progress = (progressEvent: AxiosProgressEvent) => {
|
|
if (progressEvent.total) {
|
|
const uploadPercentage = Math.round(
|
|
(progressEvent.loaded / progressEvent.total) * 100,
|
|
);
|
|
if (uploadPercentage === 100) {
|
|
onUpload(currentWorkspace.logoUrl || "");
|
|
}
|
|
setProgress(uploadPercentage);
|
|
}
|
|
};
|
|
|
|
dispatch(
|
|
uploadWorkspaceLogo({
|
|
id: workspaceId as string,
|
|
logo: file,
|
|
progress: progress,
|
|
}),
|
|
);
|
|
};
|
|
|
|
const DeleteLogo = () => {
|
|
dispatch(deleteWorkspaceLogo(workspaceId));
|
|
};
|
|
const isFetchingApplications = useSelector(getIsFetchingApplications);
|
|
|
|
const isMobile: boolean = useMediaQuery({ maxWidth: 767 });
|
|
const isPortrait: boolean = useMediaQuery({
|
|
query: "(orientation: portrait)",
|
|
});
|
|
|
|
return (
|
|
<ScrollWrapper>
|
|
<GeneralWrapper isMobile={isMobile} isPortrait={isPortrait}>
|
|
<SettingWrapper>
|
|
<Row>
|
|
{isFetchingApplications && <Loader className={Classes.SKELETON} />}
|
|
{!isFetchingApplications && (
|
|
<Input
|
|
data-testid="t--workspace-name-input"
|
|
defaultValue={currentWorkspace && currentWorkspace.name}
|
|
isRequired
|
|
label="Workspace name"
|
|
labelPosition="top"
|
|
onChange={onWorkspaceNameChange}
|
|
placeholder="Workspace name"
|
|
renderAs="input"
|
|
size="md"
|
|
type="text"
|
|
/>
|
|
)}
|
|
</Row>
|
|
</SettingWrapper>
|
|
|
|
<SettingWrapper>
|
|
<Row className="t--workspace-settings-filepicker">
|
|
<InputLabelWrapper>
|
|
<Text type={TextType.P1}>Upload logo</Text>
|
|
</InputLabelWrapper>
|
|
{isFetchingWorkspace && (
|
|
<FilePickerLoader className={Classes.SKELETON} />
|
|
)}
|
|
{!isFetchingWorkspace && (
|
|
<FilePickerV2
|
|
fileType={FileType.IMAGE}
|
|
fileUploader={FileUploader}
|
|
logoUploadError={logoUploadError.message}
|
|
onFileRemoved={DeleteLogo}
|
|
url={currentWorkspace && currentWorkspace.logoUrl}
|
|
/>
|
|
)}
|
|
</Row>
|
|
</SettingWrapper>
|
|
|
|
<SettingWrapper>
|
|
<Row>
|
|
{isFetchingApplications && <Loader className={Classes.SKELETON} />}
|
|
{!isFetchingApplications && (
|
|
<Input
|
|
data-testid="t--workspace-website-input"
|
|
defaultValue={
|
|
(currentWorkspace && currentWorkspace.website) || ""
|
|
}
|
|
label="Website"
|
|
labelPosition="top"
|
|
onChange={onWebsiteChange}
|
|
placeholder="Your website"
|
|
renderAs="input"
|
|
size="md"
|
|
type="text"
|
|
/>
|
|
)}
|
|
</Row>
|
|
</SettingWrapper>
|
|
|
|
<SettingWrapper>
|
|
<Row>
|
|
{isFetchingApplications && <Loader className={Classes.SKELETON} />}
|
|
{!isFetchingApplications && (
|
|
<Input
|
|
data-testid="t--workspace-email-input"
|
|
defaultValue={
|
|
(currentWorkspace && currentWorkspace.email) || ""
|
|
}
|
|
label="Email"
|
|
labelPosition="top"
|
|
onChange={onEmailChange}
|
|
placeholder="Email"
|
|
renderAs="input"
|
|
size="md"
|
|
type="text"
|
|
/>
|
|
)}
|
|
</Row>
|
|
</SettingWrapper>
|
|
</GeneralWrapper>
|
|
</ScrollWrapper>
|
|
);
|
|
}
|