From 2642321d414f88df03e65c098fcadc21db92732c Mon Sep 17 00:00:00 2001 From: Michael Haschke Date: Mon, 22 Sep 2025 13:04:15 +0200 Subject: [PATCH 01/24] remove unused legacy replacements --- CHANGELOG.md | 2 + src/legacy-replacements/Checkbox/Checkbox.tsx | 59 ---------------- src/legacy-replacements/Tabs/Tabs.stories.tsx | 36 ---------- src/legacy-replacements/Tabs/Tabs.tsx | 69 ------------------- src/legacy-replacements/index.ts | 5 -- 5 files changed, 2 insertions(+), 169 deletions(-) delete mode 100644 src/legacy-replacements/Checkbox/Checkbox.tsx delete mode 100644 src/legacy-replacements/Tabs/Tabs.stories.tsx delete mode 100644 src/legacy-replacements/Tabs/Tabs.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index fb5bc123f..0bdf5aae1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,8 @@ This is a major release, and it might be not compatible with your current usage ### Removed - support for React Flow v10 was completely removed +- removed direct replacements for legacy components (imported via `@eccenca/gui-elements/src/legacy-replacements` or `LegacyReplacements`) + - ``, `` ### Fixed diff --git a/src/legacy-replacements/Checkbox/Checkbox.tsx b/src/legacy-replacements/Checkbox/Checkbox.tsx deleted file mode 100644 index b9940aca1..000000000 --- a/src/legacy-replacements/Checkbox/Checkbox.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import React from "react"; - -import Checkbox from "../../components/Checkbox/Checkbox"; - -const extendedOnChangeBoolean = (onChangeFn: any, event: any) => { - if (typeof onChangeFn === "function") { - onChangeFn({ - event, - name: event.target.name, - value: event.target.checked, - rawValue: event.target.value, - }); - } -}; - -/** @deprecated (v25) all legacy component support will be removed, switch to `` */ -export function CheckboxReplacement({ - children = null, - checked = false, - className = null, - disabled = false, - label = null, - onChange, - ...otherProps -}: any) { - if (process.env.NODE_ENV === "development") { - const debugMsg = [ - "This checkbox element is a adhoc replacement for a legacy element. Usage is deprecated, please use a standard element (Checkbox).", - ]; - if (typeof otherProps.ripple !== "undefined") { - debugMsg.push("Checkbox 'ripple' property is not supported on legacy replacement element."); - delete otherProps.ripple; - } - if (typeof otherProps.hideLabel !== "undefined") { - debugMsg.push("Checkbox 'hideLabel' property is not supported on legacy replacement element."); - delete otherProps.hideLabel; - } - // eslint-disable-next-line no-console - debugMsg.forEach((element) => console.debug(element)); - } - if (typeof otherProps.ripple !== "undefined") { - delete otherProps.ripple; - } - if (typeof otherProps.hideLabel !== "undefined") { - delete otherProps.hideLabel; - } - return ( - - {label} - {children} - - ); -} diff --git a/src/legacy-replacements/Tabs/Tabs.stories.tsx b/src/legacy-replacements/Tabs/Tabs.stories.tsx deleted file mode 100644 index aa0806ff0..000000000 --- a/src/legacy-replacements/Tabs/Tabs.stories.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from "react"; -import { Meta, StoryFn } from "@storybook/react"; - -import { Tabs } from "./../../legacy-replacements"; - -export default { - title: "Legacy/Tabs", - component: Tabs, - argTypes: { - }, -} as Meta; - -const TemplateDeprecated: StoryFn = (args) => ; - -export const DeprecatedUsage = TemplateDeprecated.bind({}); -DeprecatedUsage.args = { - prefixTabNames: "deprecatedtabs", - activeTab: "deprecatedtab1", - tabs: [ - { - tabId: "deprecatedtab1", - tabTitle: "Tab title 1", - tabContent: "Tab content 1", - }, - { - tabId: "deprecatedtab2", - tabTitle: "Tab title 2", - tabContent: "Tab content 2", - }, - { - tabId: "deprecatedtab3", - tabTitle: "Tab title 3", - tabContent: "Tab content 3", - }, - ], -}; diff --git a/src/legacy-replacements/Tabs/Tabs.tsx b/src/legacy-replacements/Tabs/Tabs.tsx deleted file mode 100644 index 4892debb7..000000000 --- a/src/legacy-replacements/Tabs/Tabs.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import React from "react"; -import { Tab, Tabs as BlueprintTabs, TabsProps as BlueprintTabsProps } from "@blueprintjs/core"; - -import { CLASSPREFIX as eccgui } from "../../configuration/constants"; - -// legacy interface -interface LegacyTabsProps extends Omit { - activeTab: string; - tabs: DeprecatedTabProps[]; - onTabClick?: ({ props }: any) => void; - prefixTabNames: string; - allowScrollbars?: boolean; - /** - * If controlled usage is enable then a `onTabClick` handler is ncessary to control tab panel content and `activeTab` updates. - */ - controlled?: boolean; -} - -/** @deprecated (v25) all legacy component support will be removed */ -export interface DeprecatedTabProps { - tabId: string; - tabTitle: React.ReactNode; - tabContent?: JSX.Element; - dontShrink?: boolean; - className?: string; -} - -const createDeprecatedTab = ({ - tabId, - tabTitle, - tabContent, - dontShrink = false, - ...otherTabProps -}: DeprecatedTabProps) => { - const extraStyles = dontShrink ? { style: { flexShrink: 0 } } : {}; - return ; -}; - -/** @deprecated (v25) all legacy component support will be removed, switch to `` */ -export function TabsReplacement({ - activeTab, - tabs = [], - onTabClick, - controlled = false, - prefixTabNames, - className = "", - allowScrollbars, - ...restProps -}: LegacyTabsProps) { - const usagetype = controlled ? { selectedTabId: activeTab } : { defaultSelectedTabId: activeTab }; - return ( - - {tabs.map((tab) => { - return createDeprecatedTab({ - className: `${prefixTabNames}-header-${tab.tabId}`, - ...tab, - }); - })} - - ); -} diff --git a/src/legacy-replacements/index.ts b/src/legacy-replacements/index.ts index 7239a7597..215c5b880 100644 --- a/src/legacy-replacements/index.ts +++ b/src/legacy-replacements/index.ts @@ -2,10 +2,5 @@ export { ButtonReplacement as Button } from "./Button/Button"; export { AffirmativeButtonReplacement as AffirmativeButton } from "./Button/AffirmativeButton"; export { DismissiveButtonReplacement as DismissiveButton } from "./Button/DismissiveButton"; export { DisruptiveButtonReplacement as DisruptiveButton } from "./Button/DisruptiveButton"; -export { ButtonReplacement as ProgressButton } from "./Button/Button"; -export { CheckboxReplacement as Checkbox } from "./Checkbox/Checkbox"; export { RadioButtonReplacement as Radio } from "./Radio/RadioButton"; -export { TabsReplacement as Tabs } from "./Tabs/Tabs"; export { TextFieldReplacement as TextField } from "./TextField/TextField"; - -export type { DeprecatedTabProps } from "./Tabs/Tabs"; From 44b89fe86953aa1eb1d7bfcfb5f9064ffd0a0370 Mon Sep 17 00:00:00 2001 From: Michael Haschke Date: Mon, 22 Sep 2025 13:07:26 +0200 Subject: [PATCH 02/24] remove deprecated comment as the code changed already --- src/extensions/codemirror/CodeMirror.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/extensions/codemirror/CodeMirror.tsx b/src/extensions/codemirror/CodeMirror.tsx index edb22a2e0..c25304354 100644 --- a/src/extensions/codemirror/CodeMirror.tsx +++ b/src/extensions/codemirror/CodeMirror.tsx @@ -55,7 +55,6 @@ export interface CodeEditorProps extends TestableComponent { /** * Handler method to receive onChange events. * As input the new value is given. - * @deprecated (v25) use `(v: string) => void` in future */ onChange?: (v: string) => void; /** From 0ebd5cd6ae9a8e6a5e9f455b11f584c8bff72e94 Mon Sep 17 00:00:00 2001 From: Michael Haschke Date: Mon, 22 Sep 2025 15:46:23 +0200 Subject: [PATCH 03/24] remove deprecated intent state properties --- CHANGELOG.md | 4 ++ .../stories/ColorPalettes.stories.tsx | 2 +- .../AutoSuggestion/AutoSuggestion.tsx | 8 +-- src/components/Button/Button.stories.tsx | 4 -- src/components/Button/Button.tsx | 67 +++---------------- src/components/Form/FieldItem.tsx | 52 +------------- src/components/Form/FieldSet.tsx | 46 +------------ src/components/MultiSelect/MultiSelect.tsx | 44 +----------- .../MultiSuggestField.stories.tsx | 2 +- .../Notification/Notification.stories.tsx | 8 +-- src/components/Notification/Notification.tsx | 54 +-------------- src/components/TextField/SearchField.tsx | 7 +- .../TextField/stories/SearchField.stories.tsx | 4 -- 13 files changed, 33 insertions(+), 269 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bdf5aae1..155758879 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,10 @@ This is a major release, and it might be not compatible with your current usage - support for React Flow v10 was completely removed - removed direct replacements for legacy components (imported via `@eccenca/gui-elements/src/legacy-replacements` or `LegacyReplacements`) - ``, `` +- `