diff --git a/packages/dm-gui-components/src/Communication.tsx b/packages/dm-gui-components/src/Communication.tsx index 3644b56d2..474948b1a 100644 --- a/packages/dm-gui-components/src/Communication.tsx +++ b/packages/dm-gui-components/src/Communication.tsx @@ -13,19 +13,24 @@ import { Snackbar, } from '@mui/material'; -import { Connection } from '@iobroker/adapter-react-v5'; +import { AdminConnection } from '@iobroker/adapter-react-v5'; import type { ActionBase, ControlBase, ControlState } from '@iobroker/dm-utils/build/types/base'; import type { DeviceRefresh } from '@iobroker/dm-utils/build/types'; import { getTranslation } from './Utils'; import JsonConfig from './JsonConfig'; +import type { ThemeName, ThemeType } from '@iobroker/adapter-react-v5/types'; export type CommunicationProps = { /* socket object */ - socket: Connection; + socket: AdminConnection; /* Instance to communicate with device-manager backend, like `adapterName.X` */ selectedInstance: string; // adapterName.X registerHandler?: (handler: null | ((command: string) => void)) => void; + themeName: ThemeName; + themeType: ThemeType; + isFloatComma: boolean; + dateFormat: string; } interface CommunicationForm { @@ -358,7 +363,7 @@ class Communication

schema={this.state.form.schema} data={this.state.form.data} socket={this.props.socket} - onChange={(data: any) => { + onChange={(data: Record) => { console.log('handleFormChange', { data }); const form: CommunicationForm | null | undefined = { ...this.state.form }; if (form) { @@ -366,6 +371,10 @@ class Communication

this.setState({ form }); } }} + themeName={this.props.themeName} + themeType={this.props.themeType} + isFloatComma={this.props.isFloatComma} + dateFormat={this.props.dateFormat} /> diff --git a/packages/dm-gui-components/src/DeviceCard.tsx b/packages/dm-gui-components/src/DeviceCard.tsx index 5d86dcc78..565246f4c 100644 --- a/packages/dm-gui-components/src/DeviceCard.tsx +++ b/packages/dm-gui-components/src/DeviceCard.tsx @@ -13,9 +13,10 @@ import { Close as CloseIcon, } from '@mui/icons-material'; -import { Utils, Icon, Connection, I18n } from '@iobroker/adapter-react-v5'; +import { Utils, Icon, AdminConnection, I18n } from '@iobroker/adapter-react-v5'; import type { DeviceDetails, DeviceInfo } from '@iobroker/dm-utils'; import type { ActionBase, ControlBase, ControlState } from '@iobroker/dm-utils/build/types/base'; +import type { ThemeName, ThemeType } from '@iobroker/adapter-react-v5/types'; import DeviceActionButton from './DeviceActionButton'; import DeviceControlComponent from './DeviceControl'; @@ -37,7 +38,7 @@ interface DeviceCardProps { id: string; device: DeviceInfo; instanceId: string; - socket: Connection; + socket: AdminConnection; /* Instance, where the images should be uploaded to */ uploadImagesToInstance?: string; deviceHandler: (deviceId: string, action: ActionBase<'api'>, refresh: () => void) => () => void; @@ -45,6 +46,10 @@ interface DeviceCardProps { controlStateHandler: (deviceId: string, control: ControlBase) => () => Promise; smallCards?: boolean; alive: boolean; + themeName: ThemeName; + themeType: ThemeType; + isFloatComma: boolean; + dateFormat: string; } function getText(text: ioBroker.StringOrTranslated | undefined): string | undefined { @@ -156,6 +161,10 @@ class DeviceCard extends Component { schema={this.state.details.schema} data={this.state.data} onChange={(data: Record) => this.setState({ data })} + themeName={this.props.themeName} + themeType={this.props.themeType} + isFloatComma={this.props.isFloatComma} + dateFormat={this.props.dateFormat} /> diff --git a/packages/dm-gui-components/src/DeviceList.tsx b/packages/dm-gui-components/src/DeviceList.tsx index f112132d8..ed143af01 100644 --- a/packages/dm-gui-components/src/DeviceList.tsx +++ b/packages/dm-gui-components/src/DeviceList.tsx @@ -258,6 +258,10 @@ export default class DeviceList extends Communication); } diff --git a/packages/dm-gui-components/src/JsonConfig.tsx b/packages/dm-gui-components/src/JsonConfig.tsx index e25c75aa3..b18caf041 100644 --- a/packages/dm-gui-components/src/JsonConfig.tsx +++ b/packages/dm-gui-components/src/JsonConfig.tsx @@ -1,12 +1,17 @@ import React, { useState } from 'react'; -import { Connection, JsonConfigComponent } from '@iobroker/adapter-react-v5'; +import { AdminConnection, JsonConfigComponent } from '@iobroker/adapter-react-v5'; +import type { ThemeName, ThemeType } from '@iobroker/adapter-react-v5/types'; interface JsonConfigProps { instanceId: string; - socket: Connection; + socket: AdminConnection; schema: Record; data: Record; onChange: (data: Record) => void; + themeName: ThemeName; + themeType: ThemeType; + isFloatComma?: boolean; + dateFormat?: string; } export default function JsonConfig(props: JsonConfigProps): React.JSX.Element | null { @@ -14,7 +19,7 @@ export default function JsonConfig(props: JsonConfigProps): React.JSX.Element | instanceId, socket, schema, data, onChange, } = props; console.log('JsonConfig', props); - const [error, setError] = useState(); + const [error, setError] = useState(false); if (schema === undefined) { return null; @@ -31,9 +36,12 @@ export default function JsonConfig(props: JsonConfigProps): React.JSX.Element | schema={schema} data={data} onError={setError} - // @ts-expect-error types needed onChange={_data => onChange(_data)} embedded + themeName={props.themeName} + themeType={props.themeType} + isFloatComma={props.isFloatComma === undefined ? this.props.socket.systemConfig.common.isFloatComma : props.isFloatComma} + dateFormat={props.dateFormat === undefined ? this.props.socket.systemConfig.common.dateFormat : props.dateFormat} /> ;