• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

teableio / teable / 8538004962

03 Apr 2024 11:36AM UTC coverage: 18.233% (-3.3%) from 21.535%
8538004962

Pull #528

github

web-flow
Merge c1a248a6f into 45ee7ebb3
Pull Request #528: feat: Kanban view

575 of 1136 branches covered (50.62%)

29 of 2908 new or added lines in 83 files covered. (1.0%)

5 existing lines in 5 files now uncovered.

6439 of 35315 relevant lines covered (18.23%)

3.94 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/packages/sdk/src/components/select-field-dialog/FieldCreator.tsx
NEW
1
/* eslint-disable jsx-a11y/no-autofocus */
×
NEW
2
import type { IFieldRo, IUserFieldOptions } from '@teable/core';
×
NEW
3
import { FieldType } from '@teable/core';
×
NEW
4
import { Input, Label, Switch } from '@teable/ui-lib';
×
NEW
5

×
NEW
6
interface IFieldCreatorProps {
×
NEW
7
  field: IFieldRo;
×
NEW
8
  setField: React.Dispatch<React.SetStateAction<IFieldRo | undefined>>;
×
NEW
9
}
×
NEW
10

×
NEW
11
export const FieldCreator = (props: IFieldCreatorProps) => {
×
NEW
12
  const { field, setField } = props;
×
NEW
13
  const { name, type, options } = field;
×
NEW
14

×
NEW
15
  const onNameChange = (e: React.ChangeEvent<HTMLInputElement>) => {
×
NEW
16
    const value = e.target.value;
×
NEW
17
    setField({ ...field, name: value });
×
NEW
18
  };
×
NEW
19

×
NEW
20
  const onOptionChange = (checked: boolean, key: string) => {
×
NEW
21
    setField({
×
NEW
22
      ...field,
×
NEW
23
      options: { ...(options ?? {}), [key]: checked },
×
NEW
24
    });
×
NEW
25
  };
×
NEW
26

×
NEW
27
  const getContent = () => {
×
NEW
28
    switch (type) {
×
NEW
29
      case FieldType.SingleSelect: {
×
NEW
30
        return <Input value={name} onChange={onNameChange} autoFocus />;
×
NEW
31
      }
×
NEW
32
      case FieldType.User: {
×
NEW
33
        return (
×
NEW
34
          <div className="space-y-3">
×
NEW
35
            <Input value={name} onChange={onNameChange} autoFocus />
×
NEW
36
            <div className="flex items-center space-x-2">
×
NEW
37
              <Switch
×
NEW
38
                id="user-field-options-should-notify"
×
NEW
39
                checked={Boolean((options as IUserFieldOptions)?.shouldNotify)}
×
NEW
40
                onCheckedChange={(checked) => onOptionChange(checked, 'shouldNotify')}
×
NEW
41
              />
×
NEW
42
              <Label htmlFor="user-field-options-should-notify" className="font-normal">
×
NEW
43
                Notify users once they're selected
×
NEW
44
              </Label>
×
NEW
45
            </div>
×
NEW
46
          </div>
×
NEW
47
        );
×
NEW
48
      }
×
NEW
49
      default:
×
NEW
50
        return <Input value={name} onChange={onNameChange} autoFocus />;
×
NEW
51
    }
×
NEW
52
  };
×
NEW
53

×
NEW
54
  return <div className="py-2">{getContent()}</div>;
×
NEW
55
};
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc