From a01c73d506e4ba186f882ef53a281862095f778f Mon Sep 17 00:00:00 2001 From: "Gina A." <70909035+gndz07@users.noreply.github.com> Date: Wed, 12 Nov 2025 12:16:06 +0100 Subject: [PATCH] Restore remote Upgrade to Hub button web component --- webui/package.json | 2 +- .../traefiklabs-hub-button-app/main-v1.js | 23 - .../traefiklabs-hub-button-app/main-v1.js.map | 1 - webui/src/components/TableFilter.tsx | 4 +- .../src/hooks/use-hub-upgrade-button.spec.tsx | 131 ++ webui/src/hooks/use-hub-upgrade-button.tsx | 61 + webui/src/layout/Navigation.spec.tsx | 75 + webui/src/layout/Navigation.tsx | 147 +- .../src/pages/hub-demo/HubDashboard.spec.tsx | 8 +- webui/src/pages/hub-demo/HubDashboard.tsx | 6 +- webui/src/pages/hub-demo/constants.ts | 1 + .../src/pages/hub-demo/use-hub-demo.spec.tsx | 5 +- webui/src/pages/hub-demo/use-hub-demo.tsx | 10 +- .../scriptVerification.integration.spec.ts | 0 .../workers/scriptVerification.spec.ts | 22 +- .../workers/scriptVerification.ts | 4 +- .../workers/scriptVerificationWorker.ts | 0 webui/yarn.lock | 1445 +++++++++++++++-- 18 files changed, 1642 insertions(+), 303 deletions(-) delete mode 100644 webui/public/traefiklabs-hub-button-app/main-v1.js delete mode 100644 webui/public/traefiklabs-hub-button-app/main-v1.js.map create mode 100644 webui/src/hooks/use-hub-upgrade-button.spec.tsx create mode 100644 webui/src/hooks/use-hub-upgrade-button.tsx create mode 100644 webui/src/pages/hub-demo/constants.ts rename webui/src/{pages/hub-demo => utils}/workers/scriptVerification.integration.spec.ts (100%) rename webui/src/{pages/hub-demo => utils}/workers/scriptVerification.spec.ts (82%) rename webui/src/{pages/hub-demo => utils}/workers/scriptVerification.ts (92%) rename webui/src/{pages/hub-demo => utils}/workers/scriptVerificationWorker.ts (100%) diff --git a/webui/package.json b/webui/package.json index d2972a97c..b75ac6d1b 100644 --- a/webui/package.json +++ b/webui/package.json @@ -49,7 +49,7 @@ "@testing-library/jest-dom": "^6.4.2", "@testing-library/react": "^14.2.1", "@testing-library/user-event": "^14.5.2", - "@traefiklabs/faency": "11.1.4", + "@traefiklabs/faency": "12.0.4", "@types/lodash": "^4.17.16", "@types/node": "^22.15.18", "@types/react": "^18.2.0", diff --git a/webui/public/traefiklabs-hub-button-app/main-v1.js b/webui/public/traefiklabs-hub-button-app/main-v1.js deleted file mode 100644 index e140dab34..000000000 --- a/webui/public/traefiklabs-hub-button-app/main-v1.js +++ /dev/null @@ -1,23 +0,0 @@ -/* eslint-disable */ -(()=>{var e={110:(e,t,n)=>{"use strict";var r=n(309),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},l={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},o={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},i={};function u(e){return r.isMemo(e)?o:i[e.$$typeof]||a}i[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},i[r.Memo]=o;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(h){var a=p(n);a&&a!==h&&e(t,a,r)}var o=c(n);f&&(o=o.concat(f(n)));for(var i=u(t),m=u(n),g=0;g{"use strict";var n="function"===typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,l=n?Symbol.for("react.fragment"):60107,o=n?Symbol.for("react.strict_mode"):60108,i=n?Symbol.for("react.profiler"):60114,u=n?Symbol.for("react.provider"):60109,s=n?Symbol.for("react.context"):60110,c=n?Symbol.for("react.async_mode"):60111,f=n?Symbol.for("react.concurrent_mode"):60111,d=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,h=n?Symbol.for("react.suspense_list"):60120,m=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,v=n?Symbol.for("react.block"):60121,y=n?Symbol.for("react.fundamental"):60117,b=n?Symbol.for("react.responder"):60118,S=n?Symbol.for("react.scope"):60119;function k(e){if("object"===typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case c:case f:case l:case i:case o:case p:return e;default:switch(e=e&&e.$$typeof){case s:case d:case g:case m:case u:return e;default:return t}}case a:return t}}}function w(e){return k(e)===f}t.AsyncMode=c,t.ConcurrentMode=f,t.ContextConsumer=s,t.ContextProvider=u,t.Element=r,t.ForwardRef=d,t.Fragment=l,t.Lazy=g,t.Memo=m,t.Portal=a,t.Profiler=i,t.StrictMode=o,t.Suspense=p,t.isAsyncMode=function(e){return w(e)||k(e)===c},t.isConcurrentMode=w,t.isContextConsumer=function(e){return k(e)===s},t.isContextProvider=function(e){return k(e)===u},t.isElement=function(e){return"object"===typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===d},t.isFragment=function(e){return k(e)===l},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===m},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===i},t.isStrictMode=function(e){return k(e)===o},t.isSuspense=function(e){return k(e)===p},t.isValidElementType=function(e){return"string"===typeof e||"function"===typeof e||e===l||e===f||e===i||e===o||e===p||e===h||"object"===typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===m||e.$$typeof===u||e.$$typeof===s||e.$$typeof===d||e.$$typeof===y||e.$$typeof===b||e.$$typeof===S||e.$$typeof===v)},t.typeOf=k},309:(e,t,n)=>{"use strict";e.exports=n(746)},463:(e,t,n)=>{"use strict";var r=n(791),a=n(296);function l(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n