diff options
| author | Oliver <oliver@mohlin.dev> | 2025-09-02 06:43:26 +0200 |
|---|---|---|
| committer | Tobias Järvelöv <tobias.jarvelov@mullvad.net> | 2025-09-22 12:35:43 +0200 |
| commit | 042ecf6dc2314f66c7f3e2da199f90be4f1a114d (patch) | |
| tree | 5f58688a0ad35f6bcd95b44f0e3c7a0fdc2a945b | |
| parent | c0b2a6de91e6fddf174aa4ea6131739055ee170b (diff) | |
| download | mullvadvpn-042ecf6dc2314f66c7f3e2da199f90be4f1a114d.tar.xz mullvadvpn-042ecf6dc2314f66c7f3e2da199f90be4f1a114d.zip | |
Add TextField component to ListItem
7 files changed, 43 insertions, 0 deletions
diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/ListItem.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/ListItem.tsx index b52bc51d53..7b234e1a62 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/ListItem.tsx +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/ListItem.tsx @@ -8,6 +8,7 @@ import { ListItemItem, ListItemLabel, ListItemText, + ListItemTextField, ListItemTrigger, } from './components'; import { levels } from './levels'; @@ -39,6 +40,7 @@ const ListItemNamespace = Object.assign(ListItem, { Item: ListItemItem, Footer: ListItemFooter, Icon: ListItemIcon, + TextField: ListItemTextField, }); export { ListItemNamespace as ListItem }; diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/index.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/index.ts index 1b7906d8a1..0ed8151241 100644 --- a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/index.ts +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/index.ts @@ -6,3 +6,4 @@ export * from './list-item-label'; export * from './list-item-text'; export * from './list-item-trigger'; export * from './list-item-footer'; +export * from './list-item-text-field'; diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/ListItemTextField.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/ListItemTextField.tsx new file mode 100644 index 0000000000..05c9b828f1 --- /dev/null +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/ListItemTextField.tsx @@ -0,0 +1,22 @@ +import { TextField, TextFieldProps } from '../../../text-field'; +import { ListItemTextFieldInput } from './components'; + +export type ListItemTextFieldProps = TextFieldProps & { + onSubmit?: (event: React.FormEvent) => Promise<void>; +}; + +function ListItemTextField({ invalid, onSubmit, children, ...props }: ListItemTextFieldProps) { + return ( + <form onSubmit={onSubmit}> + <TextField invalid={invalid} {...props}> + {children} + </TextField> + </form> + ); +} + +const ListItemTextFieldNamespace = Object.assign(ListItemTextField, { + Input: ListItemTextFieldInput, +}); + +export { ListItemTextFieldNamespace as ListItemTextField }; diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/index.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/index.ts new file mode 100644 index 0000000000..28509d072d --- /dev/null +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/index.ts @@ -0,0 +1 @@ +export * from './list-item-text-field-input'; diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/list-item-text-field-input/ListItemTextFieldInput.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/list-item-text-field-input/ListItemTextFieldInput.tsx new file mode 100644 index 0000000000..3eb3342ffc --- /dev/null +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/list-item-text-field-input/ListItemTextFieldInput.tsx @@ -0,0 +1,15 @@ +import styled from 'styled-components'; + +import { TextField } from '../../../../../text-field'; +import { TextFieldInputProps } from '../../../../../text-field/components'; + +export type ListItemTextFieldInputProps = TextFieldInputProps; + +const StyledTextFieldInput = styled(TextField.Input)` + box-sizing: border-box; + width: 102px; +`; + +export function ListItemTextFieldInput({ children, ...props }: ListItemTextFieldInputProps) { + return <StyledTextFieldInput {...props}>{children}</StyledTextFieldInput>; +} diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/list-item-text-field-input/index.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/list-item-text-field-input/index.ts new file mode 100644 index 0000000000..a9da3a4bb4 --- /dev/null +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/components/list-item-text-field-input/index.ts @@ -0,0 +1 @@ +export * from './ListItemTextFieldInput'; diff --git a/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/index.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/index.ts new file mode 100644 index 0000000000..7f6a499cfb --- /dev/null +++ b/desktop/packages/mullvad-vpn/src/renderer/lib/components/list-item/components/list-item-text-field/index.ts @@ -0,0 +1 @@ +export * from './ListItemTextField'; |
