feat: support enter to create workspace

This commit is contained in:
tzhangchi
2023-01-06 18:46:07 +08:00
parent 2b8b1c1f38
commit 8fa9669aa8
3 changed files with 16 additions and 1 deletions

View File

@@ -20,6 +20,12 @@ export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
onClose({ workspaceId: workspace.id });
setActiveWorkspace(workspace);
};
const handleKeyDown = (event: KeyboardEvent) => {
if (event.key === 'Enter') {
// 👇 Get input value
handleCreateWorkspace();
}
};
return (
<div>
<Modal open={open} onClose={onClose}>
@@ -40,6 +46,7 @@ export const CreateWorkspaceModal = ({ open, onClose }: ModalProps) => {
just one person or together as a team.
</p>
<Input
onKeyDown={handleKeyDown}
onChange={value => {
setWorkspaceName(value);
}}

View File

@@ -20,7 +20,8 @@ export const WorkspaceAvatar = (props: IWorkspaceAvatar) => {
background: stringToColour(props.name || 'AFFiNE'),
borderRadius: '50%',
textAlign: 'center',
lineHeight: sizeStr,
// Let the text inside the avatar be absolutely in the play
lineHeight: size - 2 + '[x',
}}
>
{(props.name || 'AFFiNE').substring(0, 1)}

View File

@@ -11,6 +11,7 @@ type inputProps = {
onChange?: (value: string) => void;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
onBlur?: (e: any) => void;
onKeyDown?: (e: any) => void;
};
export const Input = (props: inputProps) => {
@@ -23,6 +24,7 @@ export const Input = (props: inputProps) => {
width = 260,
onChange,
onBlur,
onKeyDown,
} = props;
const [value, setValue] = useState<string>(valueProp || '');
const handleChange: InputHTMLAttributes<HTMLInputElement>['onChange'] = e => {
@@ -37,6 +39,10 @@ export const Input = (props: inputProps) => {
const handleBlur: InputHTMLAttributes<HTMLInputElement>['onBlur'] = e => {
onBlur && onBlur(e);
};
const handleKeyDown: InputHTMLAttributes<HTMLInputElement>['onKeyDown'] =
e => {
onKeyDown && onKeyDown(e);
};
useEffect(() => {
setValue(valueProp || '');
}, [valueProp]);
@@ -50,6 +56,7 @@ export const Input = (props: inputProps) => {
minLength={minLength}
onChange={handleChange}
onBlur={handleBlur}
onKeyDown={handleKeyDown}
></StyledInput>
);
};