From 7ba350b355e9df8aef20e1407f3dce2689e8206a Mon Sep 17 00:00:00 2001 From: Bluefox Date: Sun, 29 Dec 2024 15:29:37 +0000 Subject: [PATCH] Longitude not undefined (#2884) --- .gitignore | 1 + README.md | 2 +- packages/adapter-react-v5/README.md | 4 +-- packages/adapter-react-v5/package.json | 1 + .../src/Components/ObjectBrowser.tsx | 24 +++++++++++++++-- .../adapter-react-v5/src/LegacyConnection.tsx | 15 ++++++++++- packages/adapter-react-v5/src/types.d.ts | 15 ++++++++++- packages/adapter-react-v5/tasks.js | 1 + packages/admin/io-package.json | 13 --------- packages/admin/src-admin/package.json | 2 +- .../components/Wizard/WizardSettingsTab.tsx | 27 +++++++++++++------ 11 files changed, 76 insertions(+), 29 deletions(-) diff --git a/.gitignore b/.gitignore index bfa32dfbf..da957413e 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ packages/admin/README.md /packages/jsonConfig/test/testSchema.js /packages/jsonConfig/test/testSchema.js.map /packages/adapter-react-v5/i18n/ +/packages/adapter-react-v5/index.css diff --git a/README.md b/README.md index 811e43ddc..0a323c827 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ The icons may not be reused in other projects without the proper flaticon licens -### 7.4.9 (2024-12-29) +### **WORK IN PROGRESS** - (@GermanBluefox) Corrected JSON-Config tables - (@GermanBluefox) Corrected translation on the update adapter dialog diff --git a/packages/adapter-react-v5/README.md b/packages/adapter-react-v5/README.md index cdbf959ed..b6a4d01df 100644 --- a/packages/adapter-react-v5/README.md +++ b/packages/adapter-react-v5/README.md @@ -13,7 +13,7 @@ If you want to create the configuration page with ReactJS: - Change `name` from `src` to `ADAPTERNAME-admin` (Of course replace `ADAPTERNAME` with yours) - Add to devDependencies: ```json - "@iobroker/adapter-react-v5": "^7.4.8", + "@iobroker/adapter-react-v5": "^7.4.9", ``` Versions can be higher. So your `src/package.json` should look like: @@ -24,7 +24,7 @@ If you want to create the configuration page with ReactJS: "version": "0.1.0", "private": true, "dependencies": { - "@iobroker/adapter-react-v5": "^7.4.8", + "@iobroker/adapter-react-v5": "^7.4.9", "@iobroker/build-tools": "^1.0.0", "babel-eslint": "^10.1.0", "react-scripts": "^5.0.1" diff --git a/packages/adapter-react-v5/package.json b/packages/adapter-react-v5/package.json index 7bf12b8f9..c865ed966 100644 --- a/packages/adapter-react-v5/package.json +++ b/packages/adapter-react-v5/package.json @@ -40,6 +40,7 @@ "files": [ "build/", "i18n/", + "index.css", "LICENSE", "tasksExample.js", "craco-module-federation.js", diff --git a/packages/adapter-react-v5/src/Components/ObjectBrowser.tsx b/packages/adapter-react-v5/src/Components/ObjectBrowser.tsx index fb31900d4..0f158370e 100644 --- a/packages/adapter-react-v5/src/Components/ObjectBrowser.tsx +++ b/packages/adapter-react-v5/src/Components/ObjectBrowser.tsx @@ -3277,9 +3277,29 @@ export class ObjectBrowserClass extends Component this.props.onSelect && this.props.onSelect([], '')); + this.setState({ selected: [] }, () => { + if (this.props.onSelect) { + if (this.state.focused && this.props.allowNonObjects) { + // remove a task to select the pre-selected item if now we want to see another object + if (this.selectFirst && this.selectFirst !== this.state.selected[0]) { + this.selectFirst = ''; + } + this.props.onSelect([this.state.focused], null, isDouble); + } else { + this.props.onSelect([], ''); + } + } + }); } else if (this.props.onSelect) { - this.props.onSelect([], ''); + if (this.state.focused && this.props.allowNonObjects) { + // remove a task to select the pre-selected item if now we want to see another object + if (this.selectFirst && this.selectFirst !== this.state.selected[0]) { + this.selectFirst = ''; + } + this.props.onSelect([this.state.focused], null, isDouble); + } else { + this.props.onSelect([], ''); + } } } } diff --git a/packages/adapter-react-v5/src/LegacyConnection.tsx b/packages/adapter-react-v5/src/LegacyConnection.tsx index 3b45c72f9..45958544f 100644 --- a/packages/adapter-react-v5/src/LegacyConnection.tsx +++ b/packages/adapter-react-v5/src/LegacyConnection.tsx @@ -17,6 +17,19 @@ declare global { } } +type LogMessage = { + /** Log message */ + message: string; + /** origin */ + from: string; + /** timestamp in ms */ + ts: number; + /** Log message */ + severity: ioBroker.LogLevel; + /** unique ID of the message */ + _id: number; +}; + export type Severity = 'info' | 'notify' | 'alert'; type DockerInformation = @@ -178,7 +191,7 @@ interface ConnectionProps { /** Ready callback. */ onReady?: (objects: Record) => void; /** Log callback. */ - onLog?: (text: string) => void; + onLog?: (message: LogMessage) => void; /** Error callback. */ onError?: (error: any) => void; /** Object change callback. */ diff --git a/packages/adapter-react-v5/src/types.d.ts b/packages/adapter-react-v5/src/types.d.ts index 09114d035..68320a0b5 100644 --- a/packages/adapter-react-v5/src/types.d.ts +++ b/packages/adapter-react-v5/src/types.d.ts @@ -7,6 +7,19 @@ import type Router from './Components/Router'; export type Translate = (key: string, ...args: (string | number | boolean)[]) => string; +export type LogMessage = { + /** Log message */ + message: string; + /** origin */ + from: string; + /** timestamp in ms */ + ts: number; + /** Log message */ + severity: ioBroker.LogLevel; + /** unique ID of the message */ + _id: number; +}; + /** * Properties for the connection to the admin or web instance. */ @@ -34,7 +47,7 @@ export interface ConnectionProps { /** Ready callback. */ onReady?: (objects: Record) => void; /** Log callback. */ - onLog?: (text: string) => void; + onLog?: (text: LogMessage) => void; /** Error callback. */ onError?: (error: any) => void; /** Object change callback. */ diff --git a/packages/adapter-react-v5/tasks.js b/packages/adapter-react-v5/tasks.js index 7fcf4745d..a5365c71c 100644 --- a/packages/adapter-react-v5/tasks.js +++ b/packages/adapter-react-v5/tasks.js @@ -38,6 +38,7 @@ function copyAllFiles() { 'build/assets', ); copyFiles(['src/i18n/*.json'], 'i18n'); + copyFiles(['src/index.css'], './'); // copyFiles(['README.md', 'LICENSE'], 'build'); // copyFileSync('tasksExample.js', 'build/tasks.js'); copyFiles(['src/*.css'], 'build'); diff --git a/packages/admin/io-package.json b/packages/admin/io-package.json index b10459452..70f957890 100644 --- a/packages/admin/io-package.json +++ b/packages/admin/io-package.json @@ -19,19 +19,6 @@ "connectionType": "local", "dataSource": "push", "news": { - "7.4.9": { - "en": "Corrected JSON-Config tables\nCorrected translation on the update adapter dialog", - "de": "Korrektur der JSON-Config-Tabellen\nKorrigierte Übersetzung im Update Adapter Dialog", - "ru": "Исправленные таблицы JSON-Config\nИсправлен перевод на диалог адаптера обновления", - "pt": "Tabelas corretas de JSON-Config\nTradução correta na caixa de diálogo do adaptador de atualização", - "nl": "Gecorrigeerde JSON-config tabellen\nGecorrigeerde vertaling in het dialoogvenster Updateadapter", - "fr": "Tableaux JSON-Config corrigés\nTraduction corrigée sur la boîte de dialogue de l'adaptateur de mise à jour", - "it": "Tavoli JSON-Config corretti\nTraduzione corretta sulla finestra di dialogo dell'adattatore di aggiornamento", - "es": "Cuadros JSON-Config corregidos\nTraducción corregida en el diálogo del adaptador de actualización", - "pl": "Poprawione tabele JSON- Config\nPoprawione tłumaczenie w oknie aktualizacji adaptera", - "uk": "Виправлені JSON-Config таблиці\nВиправлений переклад на діалоговому вікні адаптера оновлення", - "zh-cn": "更正的 JSON 图表\n在更新适配器对话框上更正的翻译" - }, "7.4.8": { "en": "Show latest/stable labels by updating/downgrading of adapters\nCorrected selection of chinese language", "de": "Neueste/stabile Etiketten durch Aktualisierung/Abbau von Adaptern anzeigen\nKorrigierte Auswahl der chinesischen Sprache", diff --git a/packages/admin/src-admin/package.json b/packages/admin/src-admin/package.json index 79c509a3f..92ec131ed 100644 --- a/packages/admin/src-admin/package.json +++ b/packages/admin/src-admin/package.json @@ -103,5 +103,5 @@ } ] ], - "version": "7.4.8" + "version": "7.4.9" } \ No newline at end of file diff --git a/packages/admin/src-admin/src/components/Wizard/WizardSettingsTab.tsx b/packages/admin/src-admin/src/components/Wizard/WizardSettingsTab.tsx index 35c3d5892..3dc3513e4 100644 --- a/packages/admin/src-admin/src/components/Wizard/WizardSettingsTab.tsx +++ b/packages/admin/src-admin/src/components/Wizard/WizardSettingsTab.tsx @@ -179,10 +179,13 @@ class WizardSettingsTab extends Component this.changeMapPosition(), ); @@ -207,8 +210,8 @@ class WizardSettingsTab extends Component this.getBrowserCoordinates(), @@ -263,9 +266,9 @@ class WizardSettingsTab extends Component { const value = evt.target.value; if (id === 'latitude') { - this.setState({ latitude: value }); + this.setState({ latitude: value || '' }); } else { - this.setState({ longitude: value }); + this.setState({ longitude: value || '' }); } this.changeMapPosition(); @@ -806,7 +809,11 @@ class WizardSettingsTab extends Component this.onChangePosition(e, 'longitude')} slotProps={{ input: { @@ -829,7 +836,11 @@ class WizardSettingsTab extends Component this.onChangePosition(e, 'latitude')} slotProps={{ input: {