From 10215ac22f418d25cc41fb317b31c6ad69d6e921 Mon Sep 17 00:00:00 2001 From: Roman Vyakhirev Date: Tue, 9 Jun 2026 15:31:59 +0200 Subject: [PATCH 1/5] chore: add pusher module --- packages/modules/pusher/.prettierrc.js | 1 + packages/modules/pusher/CHANGELOG.md | 11 + packages/modules/pusher/LICENSE | 201 ++++++++++++++++++ packages/modules/pusher/README.md | 5 + .../assets/Pusher_widget_legacy_1.2.0.mpk | Bin 0 -> 62678 bytes packages/modules/pusher/package.json | 47 ++++ packages/modules/pusher/scripts/build.ts | 13 ++ .../modules/pusher/scripts/push-update.ts | 13 ++ packages/modules/pusher/scripts/release.ts | 47 ++++ packages/modules/pusher/scripts/tsconfig.json | 4 + .../pluggableWidgets/pusher-web/package.json | 2 +- .../pusher-web/src/Pusher.xml | 4 +- .../pusher-web/src/package.xml | 2 +- pnpm-lock.yaml | 13 ++ 14 files changed, 359 insertions(+), 4 deletions(-) create mode 100644 packages/modules/pusher/.prettierrc.js create mode 100644 packages/modules/pusher/CHANGELOG.md create mode 100644 packages/modules/pusher/LICENSE create mode 100644 packages/modules/pusher/README.md create mode 100644 packages/modules/pusher/assets/Pusher_widget_legacy_1.2.0.mpk create mode 100644 packages/modules/pusher/package.json create mode 100644 packages/modules/pusher/scripts/build.ts create mode 100644 packages/modules/pusher/scripts/push-update.ts create mode 100644 packages/modules/pusher/scripts/release.ts create mode 100644 packages/modules/pusher/scripts/tsconfig.json diff --git a/packages/modules/pusher/.prettierrc.js b/packages/modules/pusher/.prettierrc.js new file mode 100644 index 0000000000..0892704ab0 --- /dev/null +++ b/packages/modules/pusher/.prettierrc.js @@ -0,0 +1 @@ +module.exports = require("@mendix/prettier-config-web-widgets"); diff --git a/packages/modules/pusher/CHANGELOG.md b/packages/modules/pusher/CHANGELOG.md new file mode 100644 index 0000000000..1c43583ba0 --- /dev/null +++ b/packages/modules/pusher/CHANGELOG.md @@ -0,0 +1,11 @@ +# Changelog + +All notable changes to this module will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +### Added + +- Initial release of the Pusher module bundling Pusher widget v4.0.0. diff --git a/packages/modules/pusher/LICENSE b/packages/modules/pusher/LICENSE new file mode 100644 index 0000000000..79278fe62b --- /dev/null +++ b/packages/modules/pusher/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2022 Mendix Technology B.V. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/packages/modules/pusher/README.md b/packages/modules/pusher/README.md new file mode 100644 index 0000000000..8ee0cea62f --- /dev/null +++ b/packages/modules/pusher/README.md @@ -0,0 +1,5 @@ +# Pusher module + +This module bundles the **Pusher** pluggable widget together with sample pages, domain model, and helper flows so that app builders can implement real-time communication in their Mendix apps using Pusher.com. + +For full documentation of widget properties see the [Pusher](https://docs.mendix.com/appstore/services/pusher/). diff --git a/packages/modules/pusher/assets/Pusher_widget_legacy_1.2.0.mpk b/packages/modules/pusher/assets/Pusher_widget_legacy_1.2.0.mpk new file mode 100644 index 0000000000000000000000000000000000000000..9d96f528681eb10a86d066eb5d74dbedeb231968 GIT binary patch literal 62678 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 literal 0 HcmV?d00001 diff --git a/packages/modules/pusher/package.json b/packages/modules/pusher/package.json new file mode 100644 index 0000000000..23a6d604fc --- /dev/null +++ b/packages/modules/pusher/package.json @@ -0,0 +1,47 @@ +{ + "name": "@mendix/pusher", + "moduleName": "Pusher module", + "version": "4.0.0", + "description": "Pusher module containing the Pusher widget and helper flows for real-time communication.", + "copyright": "© Mendix Technology BV 2026. All rights reserved.", + "license": "Apache-2.0", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/mendix/web-widgets.git" + }, + "mxpackage": { + "type": "module", + "name": "Pusher", + "mpkName": "Pusher.mpk", + "dependencies": [ + "@mendix/pusher-web" + ] + }, + "moduleFolderNameInModeler": "pusher", + "marketplace": { + "minimumMXVersion": "10.21.1.64969", + "appName": "Pusher", + "appNumber": 107957 + }, + "testProject": { + "githubUrl": "https://github.com/mendix/testProjects", + "branchName": "pusher-web" + }, + "scripts": { + "build:module": "ts-node --project scripts/tsconfig.json scripts/build.ts", + "create-gh-release": "rui-create-gh-release", + "publish-marketplace": "rui-publish-marketplace", + "push-update": "ts-node --project scripts/tsconfig.json scripts/push-update.ts", + "release:module": "ts-node --project scripts/tsconfig.json scripts/release.ts", + "update-changelog": "rui-update-changelog-module", + "verify": "rui-verify-package-format" + }, + "dependencies": { + "@mendix/pusher-web": "workspace:*" + }, + "devDependencies": { + "@mendix/automation-utils": "workspace:*", + "@mendix/prettier-config-web-widgets": "workspace:*" + } +} diff --git a/packages/modules/pusher/scripts/build.ts b/packages/modules/pusher/scripts/build.ts new file mode 100644 index 0000000000..c40fded8b0 --- /dev/null +++ b/packages/modules/pusher/scripts/build.ts @@ -0,0 +1,13 @@ +import { runModuleSteps, copyWidgetsToProject } from "@mendix/automation-utils/steps"; + +async function main(): Promise { + await runModuleSteps({ + packagePath: process.cwd(), + steps: [copyWidgetsToProject] + }); +} + +main().catch(err => { + console.error(err); + process.exit(1); +}); diff --git a/packages/modules/pusher/scripts/push-update.ts b/packages/modules/pusher/scripts/push-update.ts new file mode 100644 index 0000000000..e7c14e0be7 --- /dev/null +++ b/packages/modules/pusher/scripts/push-update.ts @@ -0,0 +1,13 @@ +import { runModuleSteps, pushUpdates } from "@mendix/automation-utils/steps"; + +async function main(): Promise { + await runModuleSteps({ + packagePath: process.cwd(), + steps: [pushUpdates] + }); +} + +main().catch(err => { + console.error(err); + process.exit(1); +}); diff --git a/packages/modules/pusher/scripts/release.ts b/packages/modules/pusher/scripts/release.ts new file mode 100644 index 0000000000..fa0008fb6d --- /dev/null +++ b/packages/modules/pusher/scripts/release.ts @@ -0,0 +1,47 @@ +#!/usr/bin/env ts-node-script + +import { join } from "path"; +import { + addWidgetsToMpk, + cloneTestProject, + copyModuleLicense, + copyWidgetsToProject, + createModuleMpk, + logStep, + ModuleStepParams, + moveModuleToDist, + removeDist, + runModuleSteps, + writeModuleVersion +} from "@mendix/automation-utils/steps"; +import { cp } from "@mendix/automation-utils/shell"; + +async function main(): Promise { + await runModuleSteps({ + packagePath: process.cwd(), + steps: [ + removeDist, + cloneTestProject, + writeModuleVersion, + copyModuleLicense, + copyWidgetsToProject, + copyLegacyPusherWidget, + createModuleMpk, + addWidgetsToMpk, + moveModuleToDist + ] + }); +} + +async function copyLegacyPusherWidget({ config }: ModuleStepParams) { + logStep("Copying legacy Pusher widget to the module"); + cp( + join(config.paths.package, "assets", "Pusher_widget_legacy_1.2.0.mpk"), + join(config.output.dirs.widgets, "Pusher.mpk") + ); +} + +main().catch(err => { + console.error(err); + process.exit(1); +}); diff --git a/packages/modules/pusher/scripts/tsconfig.json b/packages/modules/pusher/scripts/tsconfig.json new file mode 100644 index 0000000000..65920b4c2a --- /dev/null +++ b/packages/modules/pusher/scripts/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "@mendix/automation-utils/tsconfig", + "include": ["."] +} diff --git a/packages/pluggableWidgets/pusher-web/package.json b/packages/pluggableWidgets/pusher-web/package.json index a28408cd8c..89ead2e549 100644 --- a/packages/pluggableWidgets/pusher-web/package.json +++ b/packages/pluggableWidgets/pusher-web/package.json @@ -1,7 +1,7 @@ { "name": "@mendix/pusher-web", "widgetName": "Pusher", - "version": "2.0.0", + "version": "4.0.0", "description": "Pusher.com integration widget for real-time communication", "copyright": "© Mendix Technology BV 2026. All rights reserved.", "license": "Apache-2.0", diff --git a/packages/pluggableWidgets/pusher-web/src/Pusher.xml b/packages/pluggableWidgets/pusher-web/src/Pusher.xml index f17f0a8f7a..b5ac5cd2d6 100644 --- a/packages/pluggableWidgets/pusher-web/src/Pusher.xml +++ b/packages/pluggableWidgets/pusher-web/src/Pusher.xml @@ -11,8 +11,8 @@ - Notify action name - The name should match the with the 'Notify' parameter `ActionName` + Action name + The name should match the with the 'Notify' action parameter `ActionName` diff --git a/packages/pluggableWidgets/pusher-web/src/package.xml b/packages/pluggableWidgets/pusher-web/src/package.xml index 414872761b..fd206de356 100644 --- a/packages/pluggableWidgets/pusher-web/src/package.xml +++ b/packages/pluggableWidgets/pusher-web/src/package.xml @@ -1,6 +1,6 @@ - + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0f995e504..38d210e9cb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -423,6 +423,19 @@ importers: specifier: ^7.0.3 version: 7.0.3 + packages/modules/pusher: + dependencies: + '@mendix/pusher-web': + specifier: workspace:* + version: link:../../pluggableWidgets/pusher-web + devDependencies: + '@mendix/automation-utils': + specifier: workspace:* + version: link:../../../automation/utils + '@mendix/prettier-config-web-widgets': + specifier: workspace:* + version: link:../../shared/prettier-config-web-widgets + packages/modules/web-actions: devDependencies: '@eslint/js': From 645ab636c6157e2fdc10e7da8c7558624b4830ce Mon Sep 17 00:00:00 2001 From: Roman Vyakhirev Date: Wed, 10 Jun 2026 12:15:57 +0200 Subject: [PATCH 2/5] chore: fix typings after pwt upgrade --- packages/pluggableWidgets/pusher-web/src/Pusher.tsx | 2 +- .../pluggableWidgets/pusher-web/src/utils/getChannelName.ts | 2 +- packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/pluggableWidgets/pusher-web/src/Pusher.tsx b/packages/pluggableWidgets/pusher-web/src/Pusher.tsx index 1002c252a8..0d79e41004 100644 --- a/packages/pluggableWidgets/pusher-web/src/Pusher.tsx +++ b/packages/pluggableWidgets/pusher-web/src/Pusher.tsx @@ -26,7 +26,7 @@ export default function Pusher(props: PusherContainerProps): ReactElement { }, []); // Build channel name based on the object - const channelName = getChannelName(objectSource as any); // TODO: fix typings when PWT updated. + const channelName = getChannelName(objectSource); // Setup stable subscription config const subscription = useMemo(() => { diff --git a/packages/pluggableWidgets/pusher-web/src/utils/getChannelName.ts b/packages/pluggableWidgets/pusher-web/src/utils/getChannelName.ts index 97c93d8a90..d0a9e7d2bc 100644 --- a/packages/pluggableWidgets/pusher-web/src/utils/getChannelName.ts +++ b/packages/pluggableWidgets/pusher-web/src/utils/getChannelName.ts @@ -1,7 +1,7 @@ import { DynamicValue, ObjectItem } from "mendix"; export function getChannelName(objectSource: DynamicValue): string | undefined { - const object = objectSource.value as ObjectItem | undefined; + const object = objectSource.value; if (!object) { return undefined; diff --git a/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts b/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts index 66aa96b78a..8e15cf5ae1 100644 --- a/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts +++ b/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts @@ -3,15 +3,15 @@ * WARNING: All changes made to this file will be overwritten * @author Mendix Widgets Framework Team */ +import { ActionValue, DynamicValue, ObjectItem } from "mendix"; import { CSSProperties } from "react"; -import { ActionValue, ListValue } from "mendix"; export interface PusherContainerProps { name: string; class: string; style?: CSSProperties; tabIndex?: number; - objectSource: ListValue; + objectSource: DynamicValue; notifyActionName: string; notifyEventAction?: ActionValue; } From c0dca5c7521345ae312f3fedf46d6934c4f8b844 Mon Sep 17 00:00:00 2001 From: Roman Vyakhirev Date: Wed, 10 Jun 2026 12:56:07 +0200 Subject: [PATCH 3/5] chore: bump version as widget is compatible with 11.11+ --- packages/modules/pusher/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/modules/pusher/package.json b/packages/modules/pusher/package.json index 23a6d604fc..861f6acc97 100644 --- a/packages/modules/pusher/package.json +++ b/packages/modules/pusher/package.json @@ -20,7 +20,7 @@ }, "moduleFolderNameInModeler": "pusher", "marketplace": { - "minimumMXVersion": "10.21.1.64969", + "minimumMXVersion": "11.11.0", "appName": "Pusher", "appNumber": 107957 }, From c2f07a23ae0016fe8c6b6504b1955b4de682bc55 Mon Sep 17 00:00:00 2001 From: Roman Vyakhirev Date: Fri, 12 Jun 2026 16:28:11 +0200 Subject: [PATCH 4/5] feat: make pusher widget accept list of actions --- .../pusher-web/src/Pusher.editorConfig.ts | 31 ++++++- .../pusher-web/src/Pusher.tsx | 34 ++++---- .../pusher-web/src/Pusher.xml | 23 ++++-- .../pusher-web/src/utils/PusherListener.ts | 80 ++++++++++++------- .../pusher-web/typings/PusherProps.d.ts | 16 +++- 5 files changed, 125 insertions(+), 59 deletions(-) diff --git a/packages/pluggableWidgets/pusher-web/src/Pusher.editorConfig.ts b/packages/pluggableWidgets/pusher-web/src/Pusher.editorConfig.ts index ff85ea8768..46e0ea234d 100644 --- a/packages/pluggableWidgets/pusher-web/src/Pusher.editorConfig.ts +++ b/packages/pluggableWidgets/pusher-web/src/Pusher.editorConfig.ts @@ -1,4 +1,4 @@ -import { Properties } from "@mendix/pluggable-widgets-tools"; +import { Problem, Properties } from "@mendix/pluggable-widgets-tools"; import { container, rowLayout, @@ -12,6 +12,32 @@ export function getProperties(_values: PusherPreviewProps, defaultProperties: Pr return defaultProperties; } +export function check(values: PusherPreviewProps): Problem[] { + const errors: Problem[] = []; + + // Check for duplicate action names + if (values.eventHandlers && values.eventHandlers.length > 0) { + const actionNames = values.eventHandlers.map(handler => handler.actionName).filter(name => name); + const duplicates = actionNames.filter((name, index) => actionNames.indexOf(name) !== index); + + if (duplicates.length > 0) { + const uniqueDuplicates = Array.from(new Set(duplicates)); + errors.push({ + property: "eventHandlers", + message: `Duplicate action names found: ${uniqueDuplicates.join(", ")}. Each action name must be unique.` + }); + } + } + + errors.push({ + property: "eventHandlers", + severity: "warning", + message: JSON.stringify(values) + }); + + return errors; +} + export function getPreview(values: PusherPreviewProps, isDarkMode: boolean): StructurePreviewProps { const palette = structurePreviewPalette[isDarkMode ? "dark" : "light"]; @@ -27,5 +53,6 @@ export function getCustomCaption(values: PusherPreviewProps): string { } export function getCaption(values: PusherPreviewProps): string { - return `Pusher widget [${values.notifyActionName}]`; + const handlerCount = values.eventHandlers?.length ?? 0; + return handlerCount > 0 ? `Pusher widget [${handlerCount} handler${handlerCount > 1 ? "s" : ""}]` : "Pusher widget"; } diff --git a/packages/pluggableWidgets/pusher-web/src/Pusher.tsx b/packages/pluggableWidgets/pusher-web/src/Pusher.tsx index 0d79e41004..7e91fe7422 100644 --- a/packages/pluggableWidgets/pusher-web/src/Pusher.tsx +++ b/packages/pluggableWidgets/pusher-web/src/Pusher.tsx @@ -7,18 +7,7 @@ import "./ui/Pusher.scss"; import { getChannelName } from "./utils/getChannelName"; export default function Pusher(props: PusherContainerProps): ReactElement { - const { class: className, objectSource, notifyActionName, notifyEventAction } = props; - - // Event callback - triggered when Pusher event is received - const handleEvent = useCallback( - (data: unknown) => { - console.debug("[Pusher] Event received:", data); - - // Execute configured action - executeAction(notifyEventAction); - }, - [notifyEventAction] - ); + const { class: className, objectSource, eventHandlers } = props; // Error callback const handleError = useCallback((error: Error) => { @@ -34,13 +23,28 @@ export default function Pusher(props: PusherContainerProps): ReactElement { return undefined; } + // Build event bindings from configured handlers + const eventBindings = eventHandlers + .filter(handler => handler.actionName && handler.action?.canExecute) + .map(handler => ({ + eventName: handler.actionName, + onEvent: () => { + console.debug(`[Pusher] Event received: ${handler.actionName}`); + executeAction(handler.action); + } + })); + + // If no valid handlers, return undefined (no subscription) + if (eventBindings.length === 0) { + return undefined; + } + return { channelName, - eventName: notifyActionName, - onEvent: handleEvent, + eventBindings, onError: handleError }; - }, [channelName, notifyActionName, handleEvent, handleError]); + }, [channelName, eventHandlers, handleError]); usePusherSubscribe(subscription); diff --git a/packages/pluggableWidgets/pusher-web/src/Pusher.xml b/packages/pluggableWidgets/pusher-web/src/Pusher.xml index b5ac5cd2d6..b35247dd78 100644 --- a/packages/pluggableWidgets/pusher-web/src/Pusher.xml +++ b/packages/pluggableWidgets/pusher-web/src/Pusher.xml @@ -10,14 +10,21 @@ - - Action name - The name should match the with the 'Notify' action parameter `ActionName` - - - - Action - + + Event Handlers + Configure multiple event handlers for different Pusher events + + + + Action name + The name should match the 'Notify' action parameter `ActionName` + + + Action + Client action to execute when this event is received + + + diff --git a/packages/pluggableWidgets/pusher-web/src/utils/PusherListener.ts b/packages/pluggableWidgets/pusher-web/src/utils/PusherListener.ts index 845d34bbf7..a730641a0a 100644 --- a/packages/pluggableWidgets/pusher-web/src/utils/PusherListener.ts +++ b/packages/pluggableWidgets/pusher-web/src/utils/PusherListener.ts @@ -7,17 +7,24 @@ export interface PusherConfig { csrfToken: string; } +export interface EventBinding { + eventName: string; + onEvent: () => void; +} + export interface SubscriptionConfig { channelName: string; - eventName: string; - onEvent: (data: unknown) => void; + eventBindings: EventBinding[]; onError?: (error: Error) => void; } export class PusherListener { private pusher: Pusher; private currentChannel: Channel | null = null; - private currentSubscription: SubscriptionConfig | null = null; + private currentChannelName: string | null = null; + private eventHandlersMap: Map void> = new Map(); + private globalCallback: ((eventName: string, data: unknown) => void) | null = null; + private onError?: (error: Error) => void; constructor(private config: PusherConfig) { this.pusher = new Pusher(this.config.key, { @@ -36,46 +43,59 @@ export class PusherListener { } /** - * Subscribe to channel for specific object and event - * Automatically unsubscribes from previous channel if different + * Subscribe to channel for specific object and bind multiple events + * Only resubscribes when channel name changes, not when handlers change */ subscribe(config: SubscriptionConfig): void { - // If already subscribed to same channel and event, do nothing - if (config === this.currentSubscription) { - return; - } + // Only resubscribe if channel name changes + if (config.channelName !== this.currentChannelName) { + this.unsubscribe(); + this.currentChannelName = config.channelName; + this.currentChannel = this.pusher.subscribe(config.channelName); - // Unsubscribe from previous channel if exists - this.unsubscribe(); - - // Subscribe to new channel - this.currentSubscription = config; - this.currentChannel = this.pusher.subscribe(config.channelName); + // Setup global handler once per channel + this.globalCallback = (eventName: string, _data: unknown) => { + const handler = this.eventHandlersMap.get(eventName); + if (handler) { + handler(); + } + }; + this.currentChannel.bind_global(this.globalCallback); - // Bind event handler - this.currentChannel.bind(config.eventName, config.onEvent); + // Bind error handler + this.currentChannel.bind("pusher:subscription_error", (error: unknown) => { + console.error(error); + const errorMsg = + error === 515 + ? "Authentication failed. Please verify Pusher configuration constants." + : `Subscription error: ${String(error)}`; + this.onError?.(new Error(errorMsg)); + }); + } - // Bind error handler - this.currentChannel.bind("pusher:subscription_error", (error: unknown) => { - console.error(error); - const errorMsg = - error === 515 - ? "Authentication failed. Please verify Pusher configuration constants." - : `Subscription error: ${String(error)}`; - config.onError?.(new Error(errorMsg)); + // Always update handler map (no rebinding needed) + this.eventHandlersMap.clear(); + config.eventBindings.forEach(binding => { + this.eventHandlersMap.set(binding.eventName, binding.onEvent); }); + + // Store error handler for reference + this.onError = config.onError; } /** * Unsubscribe from current channel */ unsubscribe(): void { - if (this.currentChannel && this.currentSubscription) { - // Unbind all channel events - this.currentChannel.unbind(); - this.pusher.unsubscribe(this.currentSubscription.channelName); + if (this.currentChannel && this.currentChannelName) { + // Unbind all channel events (both global and specific) + this.currentChannel.unbind_all(); + this.pusher.unsubscribe(this.currentChannelName); this.currentChannel = null; - this.currentSubscription = null; + this.currentChannelName = null; + this.globalCallback = null; + this.eventHandlersMap.clear(); + this.onError = undefined; } } diff --git a/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts b/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts index 8e15cf5ae1..e2e2fe15b9 100644 --- a/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts +++ b/packages/pluggableWidgets/pusher-web/typings/PusherProps.d.ts @@ -6,14 +6,23 @@ import { ActionValue, DynamicValue, ObjectItem } from "mendix"; import { CSSProperties } from "react"; +export interface EventHandlersType { + actionName: string; + action?: ActionValue; +} + +export interface EventHandlersPreviewType { + actionName: string; + action: {} | null; +} + export interface PusherContainerProps { name: string; class: string; style?: CSSProperties; tabIndex?: number; objectSource: DynamicValue; - notifyActionName: string; - notifyEventAction?: ActionValue; + eventHandlers: EventHandlersType[]; } export interface PusherPreviewProps { @@ -28,6 +37,5 @@ export interface PusherPreviewProps { renderMode: "design" | "xray" | "structure"; translate: (text: string) => string; objectSource: {} | { caption: string } | { type: string } | null; - notifyActionName: string; - notifyEventAction: {} | null; + eventHandlers: EventHandlersPreviewType[]; } From fd463f95c650ef7d63ed7973d7b274dcd0da8d3c Mon Sep 17 00:00:00 2001 From: Roman Vyakhirev Date: Fri, 12 Jun 2026 17:02:30 +0200 Subject: [PATCH 5/5] chore: remove legacy widget as it is committed to the test project --- .../assets/Pusher_widget_legacy_1.2.0.mpk | Bin 62678 -> 0 bytes packages/modules/pusher/scripts/release.ts | 11 ----------- 2 files changed, 11 deletions(-) delete mode 100644 packages/modules/pusher/assets/Pusher_widget_legacy_1.2.0.mpk diff --git a/packages/modules/pusher/assets/Pusher_widget_legacy_1.2.0.mpk b/packages/modules/pusher/assets/Pusher_widget_legacy_1.2.0.mpk deleted file mode 100644 index 9d96f528681eb10a86d066eb5d74dbedeb231968..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62678 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 diff --git a/packages/modules/pusher/scripts/release.ts b/packages/modules/pusher/scripts/release.ts index fa0008fb6d..0b853d5630 100644 --- a/packages/modules/pusher/scripts/release.ts +++ b/packages/modules/pusher/scripts/release.ts @@ -1,6 +1,5 @@ #!/usr/bin/env ts-node-script -import { join } from "path"; import { addWidgetsToMpk, cloneTestProject, @@ -14,7 +13,6 @@ import { runModuleSteps, writeModuleVersion } from "@mendix/automation-utils/steps"; -import { cp } from "@mendix/automation-utils/shell"; async function main(): Promise { await runModuleSteps({ @@ -25,7 +23,6 @@ async function main(): Promise { writeModuleVersion, copyModuleLicense, copyWidgetsToProject, - copyLegacyPusherWidget, createModuleMpk, addWidgetsToMpk, moveModuleToDist @@ -33,14 +30,6 @@ async function main(): Promise { }); } -async function copyLegacyPusherWidget({ config }: ModuleStepParams) { - logStep("Copying legacy Pusher widget to the module"); - cp( - join(config.paths.package, "assets", "Pusher_widget_legacy_1.2.0.mpk"), - join(config.output.dirs.widgets, "Pusher.mpk") - ); -} - main().catch(err => { console.error(err); process.exit(1);