Skip to content

Commit

Permalink
fix forms
Browse files Browse the repository at this point in the history
  • Loading branch information
oben01 committed Jul 17, 2023
1 parent 5d70b82 commit edd5f4a
Show file tree
Hide file tree
Showing 14 changed files with 43 additions and 28 deletions.
14 changes: 14 additions & 0 deletions libs/pages/plugins/src/lib/ui/FormReturnType.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { UseFormReturnType } from '@mantine/form';

export type FormReturnType = UseFormReturnType<
{ type: string; displayName: string; configuration: Record<string, unknown> },
(values: {
type: string;
displayName: string;
configuration: Record<string, unknown>;
}) => {
type: string;
displayName: string;
configuration: Record<string, unknown>;
}
>;
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { UseFormReturnType } from '@mantine/form';
import { Checkbox } from '@mantine/core';
import React, { useState } from 'react';
import { BooleanField } from '@yadoms/domain/plugins';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomBoolCheckboxProps {
pluginKey: string;
field: BooleanField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomBoolCheckbox(props: CustomBoolCheckboxProps) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { UseFormReturnType } from '@mantine/form';
import { CheckboxSectionField, PluginForm } from '@yadoms/domain/plugins';
import { CheckboxSectionField } from '@yadoms/domain/plugins';
import { Box, Checkbox } from '@mantine/core';
import React, { useState } from 'react';
import renderPluginField from '../../render-plugin-field/render-plugin-field';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomCheckboxSectionProps {
pluginKey: string;
field: CheckboxSectionField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomCheckboxSection(props: CustomCheckboxSectionProps) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { UseFormReturnType } from '@mantine/form';
import { Box, Group, Select, Text } from '@mantine/core';
import React, { forwardRef, useState } from 'react';
import { ItemProps } from '../../plugin-configuration-modal/plugin-configuration-modal';
import renderPluginField from '../../render-plugin-field/render-plugin-field';
import { ComboSectionField, PluginForm } from '@yadoms/domain/plugins';
import { ComboSectionField } from '@yadoms/domain/plugins';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomComboSectionProps {
pluginKey: string;
field: ComboSectionField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

const SelectItem = forwardRef<HTMLDivElement, ItemProps>(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { UseFormReturnType } from '@mantine/form';
import { NumberInput } from '@mantine/core';
import React from 'react';
import { DecimalField } from '@yadoms/domain/plugins';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomDecimalNumberProps {
pluginKey: string;
field: DecimalField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomDecimalNumber(props: CustomDecimalNumberProps) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { Select } from '@mantine/core';
import React, { useState } from 'react';
import { UseFormReturnType } from '@mantine/form';
import { ItemProps } from '../../plugin-configuration-modal/plugin-configuration-modal';
import { EnumField } from '@yadoms/domain/plugins';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomEnumSelectProps {
pluginKey: string;
field: EnumField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomEnumSelect(props: CustomEnumSelectProps) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { UseFormReturnType } from '@mantine/form';
import { NumberInput } from '@mantine/core';
import React from 'react';
import { IntegerField } from '@yadoms/domain/plugins';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomTextInputProps {
pluginKey: string;
field: IntegerField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomIntegerInput(props: CustomTextInputProps) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { MultiSelectSectionField } from '@yadoms/domain/plugins';
import { UseFormReturnType } from '@mantine/form';
import { Box, Group, MultiSelect, Text } from '@mantine/core';
import React, { forwardRef } from 'react';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomMultiSelectSectionProps {
pluginKey: string;
field: MultiSelectSectionField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

interface ItemProps extends React.ComponentPropsWithoutRef<'div'> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import { UseFormReturnType } from '@mantine/form';
import { Box, Group, Radio } from '@mantine/core';
import React, { useEffect, useState } from 'react';
import { ItemProps } from '../../plugin-configuration-modal/plugin-configuration-modal';
import renderPluginField from '../../render-plugin-field/render-plugin-field';
import LinkifyText from '../../linkify-text/linkify-text';
import { PluginForm, RadioSectionField } from '@yadoms/domain/plugins';
import { RadioSectionField } from '@yadoms/domain/plugins';
import { FormReturnType } from '../../FormReturnType';

export interface CustomRadioSectionProps {
pluginKey: string;
field: RadioSectionField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomRadioSection(props: CustomRadioSectionProps) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,14 @@ import { UseFormReturnType } from '@mantine/form';
import { Box, Text } from '@mantine/core';
import React from 'react';
import renderPluginField from '../../render-plugin-field/render-plugin-field';
import { PluginForm, SectionField } from '@yadoms/domain/plugins';
import { SectionField } from '@yadoms/domain/plugins';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

export interface CustomSectionProps {
pluginKey: string;
field: SectionField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomSection(props: CustomSectionProps) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ import { TextInput } from '@mantine/core';
import React from 'react';
import { StringField } from '@yadoms/domain/plugins';
import LinkifyText from '../../linkify-text/linkify-text';
import { FormReturnType } from '../../FormReturnType';

interface CustomTextInputProps {
pluginKey: string;
field: StringField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomStringInput(props: CustomTextInputProps) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { CustomTimeField } from '@yadoms/domain/plugins';
import { UseFormReturnType } from '@mantine/form';
import { TimeInput } from '@mantine/dates';
import { IconClock } from '@tabler/icons-react';
import LinkifyText from '../../linkify-text/linkify-text';
import React from 'react';
import { FormReturnType } from '../../FormReturnType';

export interface CustomTimeProps {
pluginKey: string;
field: CustomTimeField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
}

export function CustomTime(props: CustomTimeProps) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,8 +119,8 @@ export function PluginConfigurationModal(props: PluginConfigurationModalProps) {
([key, value]) =>
renderPluginField({
field: value,
form: form,
pluginKey: key,
form: form,
})
)}
{renderSpacing(6)}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import {
PluginConfigurationSchemaField,
PluginConfigurationSchemaType,
PluginForm,
} from '@yadoms/domain/plugins';
import React from 'react';
import { UseFormReturnType } from '@mantine/form';
import {
CustomBoolCheckbox,
CustomCheckboxSection,
Expand All @@ -18,10 +16,11 @@ import {
CustomStringInput,
CustomTime,
} from '../custom-plugin-components';
import { FormReturnType } from '../FormReturnType';

type RenderFieldProps = {
field: PluginConfigurationSchemaField;
form: UseFormReturnType<Record<string, unknown>>;
form: FormReturnType;
pluginKey: string;
};

Expand Down

0 comments on commit edd5f4a

Please sign in to comment.