diff options
| author | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-10-01 08:22:22 +0200 |
|---|---|---|
| committer | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-10-01 08:22:22 +0200 |
| commit | 18a9098919cb0f5e325fe1399806991bc56da4d8 (patch) | |
| tree | db07a70fbc7f53d6acb4f786f12c19dd1b169559 | |
| parent | 30bae1819de1ede5c4b9334dbd2b6cf945e237fd (diff) | |
| parent | 7538fe3fc81b4dffd9973b625606b5ed8e5d2d71 (diff) | |
| download | mullvadvpn-18a9098919cb0f5e325fe1399806991bc56da4d8.tar.xz mullvadvpn-18a9098919cb0f5e325fe1399806991bc56da4d8.zip | |
Merge branch 'fix-api-access-method-e2e-tests'
| -rw-r--r-- | desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx index 9cb0686173..c90a0db195 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx @@ -26,6 +26,7 @@ import { } from './cell/SettingsTextInput'; interface ProxyFormContext { + isNew: boolean; proxy?: CustomProxy; setProxy: (proxy: CustomProxy) => void; onSave: () => void; @@ -34,6 +35,9 @@ interface ProxyFormContext { } const proxyFormContext = React.createContext<ProxyFormContext>({ + get isNew(): boolean { + throw new Error('Missing ProxyFromContext provider'); + }, get proxy(): CustomProxy { throw new Error('Missing ProxyFromContext provider'); }, @@ -62,6 +66,7 @@ function ProxyFormContextProvider(props: React.PropsWithChildren<ProxyFormContex const { onSave: propsOnSave } = props; const [proxy, setProxy] = useState<CustomProxy | undefined>(props.proxy); + const isNew = props.proxy === undefined; const onSave = useCallback(() => { if (proxy !== undefined) { @@ -70,8 +75,8 @@ function ProxyFormContextProvider(props: React.PropsWithChildren<ProxyFormContex }, [proxy, propsOnSave]); const value = useMemo( - () => ({ proxy, setProxy, onSave, onCancel: props.onCancel, onDelete: props.onDelete }), - [proxy, onSave, props.onCancel, props.onDelete], + () => ({ isNew, proxy, setProxy, onSave, onCancel: props.onCancel, onDelete: props.onDelete }), + [isNew, proxy, onSave, props.onCancel, props.onDelete], ); return <proxyFormContext.Provider value={value}>{props.children}</proxyFormContext.Provider>; @@ -157,7 +162,7 @@ export function ProxyFormNameField(props: ProxyFormNameFieldProps) { } export function ProxyFormButtons() { - const { onSave, onCancel, onDelete, proxy } = useContext(proxyFormContext); + const { isNew, onSave, onCancel, onDelete } = useContext(proxyFormContext); // Contains form submittability to know whether or not to enable the Add/Save button. const formSubmittable = useSettingsFormSubmittable(); @@ -175,7 +180,7 @@ export function ProxyFormButtons() { <Button.Text>{messages.gettext('Cancel')}</Button.Text> </Button> <Button onClick={onSave} disabled={!formSubmittable}> - <Button.Text>{proxy ? messages.gettext('Save') : messages.gettext('Add')}</Button.Text> + <Button.Text>{isNew ? messages.gettext('Add') : messages.gettext('Save')}</Button.Text> </Button> </FlexRow> </Flex> |
