From fe0eca2002620d8fbf3b0e6cc6615b011ed9377a Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Thu, 24 Apr 2025 20:18:07 +0530 Subject: [PATCH 01/22] initial changes --- core/package-lock.json | 124 ++++++------ core/package.json | 15 +- core/src/App.css | 185 ++++++++++++++++++ core/src/App.tsx | 71 +++++++ core/src/DrawerList.tsx | 135 +++++++++++++ core/src/SideNavbar.tsx | 59 ++++++ .../components/LMFeedDataContextProvider.tsx | 2 +- core/src/components/LMPostPoll.tsx | 2 +- .../LMQNAFeedDataContextProvider.tsx | 2 +- core/src/hooks/usePostPoll.ts | 42 ++-- core/src/index.tsx | 5 + core/src/{index.ts => old_index.ts} | 0 core/src/shared/utils.ts | 2 +- 13 files changed, 543 insertions(+), 101 deletions(-) create mode 100644 core/src/App.css create mode 100644 core/src/App.tsx create mode 100644 core/src/DrawerList.tsx create mode 100644 core/src/SideNavbar.tsx create mode 100644 core/src/index.tsx rename core/src/{index.ts => old_index.ts} (100%) diff --git a/core/package-lock.json b/core/package-lock.json index dab4cc1..1192821 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,19 +1,19 @@ { - "name": "@likeminds.community/likeminds-feed-reactjs-beta", - "version": "2.1.23", + "name": "@likeminds.community/likeminds-feed-reactjs", + "version": "1.11.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@likeminds.community/likeminds-feed-reactjs-beta", - "version": "2.1.23", + "name": "@likeminds.community/likeminds-feed-reactjs", + "version": "1.11.1", "dependencies": { "@aws-sdk/client-s3": "3.556.0", "@aws-sdk/credential-provider-cognito-identity": "3.556.0", "@aws-sdk/credential-providers": "3.556.0", "@emotion/react": "11.11.3", "@emotion/styled": "11.11.0", - "@likeminds.community/feed-js-beta": "1.12.82", + "@likeminds.community/feed-js": "file:../../../dataFeed/likeminds-feed-js-data/likeminds.community-feed-js-1.19.0.tgz", "@mui/material": "5.15.10", "@mui/x-date-pickers": "7.22.2", "@testing-library/jest-dom": "5.14.1", @@ -5743,10 +5743,10 @@ "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "license": "MIT" }, - "node_modules/@likeminds.community/feed-js-beta": { - "version": "1.12.82", - "resolved": "https://registry.npmjs.org/@likeminds.community/feed-js-beta/-/feed-js-beta-1.12.82.tgz", - "integrity": "sha512-CqJWLw0hjcl0aCFib3g6lKPoLPJNXBlT7Q+v7rgmqeV7OE7j+3RNKpnVQIADa83h55vzULCIj7HuN3b0qhX9hw==", + "node_modules/@likeminds.community/feed-js": { + "version": "1.19.0", + "resolved": "file:../../../dataFeed/likeminds-feed-js-data/likeminds.community-feed-js-1.19.0.tgz", + "integrity": "sha512-3mqBchUbec2/6IK9Y9d1B96hZ7spqpjzb87997ZgoCURwrm+fkVcCm/xsZoXkEzCCHW2gf059JrvElmvsmxmbA==", "license": "ISC", "dependencies": { "@aws-sdk/client-s3": "^3.226.0", @@ -5760,7 +5760,7 @@ "ws": "^7.4.4" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/analytics": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/analytics": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.10.0.tgz", "integrity": "sha512-Locv8gAqx0e+GX/0SI3dzmBY5e9kjVDtD+3zCFLJ0tH2hJwuCAiL+5WkHuxKj92rqQj/rvkBUCfA1ewlX2hehg==", @@ -5776,7 +5776,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/analytics-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/analytics-compat": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/@firebase/analytics-compat/-/analytics-compat-0.2.6.tgz", "integrity": "sha512-4MqpVLFkGK7NJf/5wPEEP7ePBJatwYpyjgJ+wQHQGHfzaCDgntOnl9rL2vbVGGKCnRqWtZDIWhctB86UWXaX2Q==", @@ -5792,13 +5792,13 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/analytics-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/analytics-types": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.8.0.tgz", "integrity": "sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/app": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/app": { "version": "0.9.13", "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.9.13.tgz", "integrity": "sha512-GfiI1JxJ7ecluEmDjPzseRXk/PX31hS7+tjgBopL7XjB2hLUdR+0FTMXy2Q3/hXezypDvU6or7gVFizDESrkXw==", @@ -5811,7 +5811,7 @@ "tslib": "^2.1.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/app-check": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/app-check": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.8.0.tgz", "integrity": "sha512-dRDnhkcaC2FspMiRK/Vbp+PfsOAEP6ZElGm9iGFJ9fDqHoPs0HOPn7dwpJ51lCFi1+2/7n5pRPGhqF/F03I97g==", @@ -5826,7 +5826,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/app-check-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/app-check-compat": { "version": "0.3.7", "resolved": "https://registry.npmjs.org/@firebase/app-check-compat/-/app-check-compat-0.3.7.tgz", "integrity": "sha512-cW682AxsyP1G+Z0/P7pO/WT2CzYlNxoNe5QejVarW2o5ZxeWSSPAiVEwpEpQR/bUlUmdeWThYTMvBWaopdBsqw==", @@ -5843,19 +5843,19 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/app-check-interop-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/app-check-interop-types": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.0.tgz", "integrity": "sha512-xAxHPZPIgFXnI+vb4sbBjZcde7ZluzPPaSK7Lx3/nmuVk4TjZvnL8ONnkd4ERQKL8WePQySU+pRcWkh8rDf5Sg==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/app-check-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/app-check-types": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.5.0.tgz", "integrity": "sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/app-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/app-compat": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.2.13.tgz", "integrity": "sha512-j6ANZaWjeVy5zg6X7uiqh6lM6o3n3LD1+/SJFNs9V781xyryyZWXe+tmnWNWPkP086QfJoNkWN9pMQRqSG4vMg==", @@ -5868,13 +5868,13 @@ "tslib": "^2.1.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/app-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/app-types": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.0.tgz", "integrity": "sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/auth": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/auth": { "version": "0.23.2", "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.23.2.tgz", "integrity": "sha512-dM9iJ0R6tI1JczuGSxXmQbXAgtYie0K4WvKcuyuSTCu9V8eEDiz4tfa1sO3txsfvwg7nOY3AjoCyMYEdqZ8hdg==", @@ -5890,7 +5890,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/auth-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/auth-compat": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@firebase/auth-compat/-/auth-compat-0.4.2.tgz", "integrity": "sha512-Q30e77DWXFmXEt5dg5JbqEDpjw9y3/PcP9LslDPR7fARmAOTIY9MM6HXzm9KC+dlrKH/+p6l8g9ifJiam9mc4A==", @@ -5907,13 +5907,13 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/auth-interop-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/auth-interop-types": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz", "integrity": "sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/auth-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/auth-types": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.12.0.tgz", "integrity": "sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==", @@ -5923,7 +5923,7 @@ "@firebase/util": "1.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/component": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/component": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.6.4.tgz", "integrity": "sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA==", @@ -5933,7 +5933,7 @@ "tslib": "^2.1.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/database": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/database": { "version": "0.14.4", "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.14.4.tgz", "integrity": "sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ==", @@ -5947,7 +5947,7 @@ "tslib": "^2.1.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/database-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/database-compat": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/@firebase/database-compat/-/database-compat-0.3.4.tgz", "integrity": "sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg==", @@ -5961,7 +5961,7 @@ "tslib": "^2.1.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/database-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/database-types": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.10.4.tgz", "integrity": "sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ==", @@ -5971,7 +5971,7 @@ "@firebase/util": "1.9.3" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/firestore": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/firestore": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-3.13.0.tgz", "integrity": "sha512-NwcnU+madJXQ4fbLkGx1bWvL612IJN/qO6bZ6dlPmyf7QRyu5azUosijdAN675r+bOOJxMtP1Bv981bHBXAbUg==", @@ -5993,7 +5993,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/firestore-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/firestore-compat": { "version": "0.3.12", "resolved": "https://registry.npmjs.org/@firebase/firestore-compat/-/firestore-compat-0.3.12.tgz", "integrity": "sha512-mazuNGAx5Kt9Nph0pm6ULJFp/+j7GSsx+Ncw1GrnKl+ft1CQ4q2LcUssXnjqkX2Ry0fNGqUzC1mfIUrk9bYtjQ==", @@ -6009,7 +6009,7 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/firestore-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/firestore-types": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.5.1.tgz", "integrity": "sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==", @@ -6019,7 +6019,7 @@ "@firebase/util": "1.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/firestore/node_modules/@grpc/proto-loader": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/firestore/node_modules/@grpc/proto-loader": { "version": "0.6.13", "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz", "integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==", @@ -6038,7 +6038,7 @@ "node": ">=6" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/functions": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/functions": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.10.0.tgz", "integrity": "sha512-2U+fMNxTYhtwSpkkR6WbBcuNMOVaI7MaH3cZ6UAeNfj7AgEwHwMIFLPpC13YNZhno219F0lfxzTAA0N62ndWzA==", @@ -6056,7 +6056,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/functions-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/functions-compat": { "version": "0.3.5", "resolved": "https://registry.npmjs.org/@firebase/functions-compat/-/functions-compat-0.3.5.tgz", "integrity": "sha512-uD4jwgwVqdWf6uc3NRKF8cSZ0JwGqSlyhPgackyUPe+GAtnERpS4+Vr66g0b3Gge0ezG4iyHo/EXW/Hjx7QhHw==", @@ -6072,13 +6072,13 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/functions-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/functions-types": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.6.0.tgz", "integrity": "sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/installations": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/installations": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.6.4.tgz", "integrity": "sha512-u5y88rtsp7NYkCHC3ElbFBrPtieUybZluXyzl7+4BsIz4sqb4vSAuwHEUgCgCeaQhvsnxDEU6icly8U9zsJigA==", @@ -6093,7 +6093,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/installations-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/installations-compat": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@firebase/installations-compat/-/installations-compat-0.2.4.tgz", "integrity": "sha512-LI9dYjp0aT9Njkn9U4JRrDqQ6KXeAmFbRC0E7jI7+hxl5YmRWysq5qgQl22hcWpTk+cm3es66d/apoDU/A9n6Q==", @@ -6109,7 +6109,7 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/installations-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/installations-types": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.5.0.tgz", "integrity": "sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==", @@ -6118,13 +6118,13 @@ "@firebase/app-types": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/installations/node_modules/idb": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/installations/node_modules/idb": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz", "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==", "license": "ISC" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/logger": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/logger": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.4.0.tgz", "integrity": "sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==", @@ -6133,7 +6133,7 @@ "tslib": "^2.1.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/messaging": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/messaging": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.12.4.tgz", "integrity": "sha512-6JLZct6zUaex4g7HI3QbzeUrg9xcnmDAPTWpkoMpd/GoSVWH98zDoWXMGrcvHeCAIsLpFMe4MPoZkJbrPhaASw==", @@ -6150,7 +6150,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/messaging-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/messaging-compat": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@firebase/messaging-compat/-/messaging-compat-0.2.4.tgz", "integrity": "sha512-lyFjeUhIsPRYDPNIkYX1LcZMpoVbBWXX4rPl7c/rqc7G+EUea7IEtSt4MxTvh6fDfPuzLn7+FZADfscC+tNMfg==", @@ -6165,19 +6165,19 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/messaging-interop-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/messaging-interop-types": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@firebase/messaging-interop-types/-/messaging-interop-types-0.2.0.tgz", "integrity": "sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/messaging/node_modules/idb": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/messaging/node_modules/idb": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.0.1.tgz", "integrity": "sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==", "license": "ISC" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/performance": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/performance": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.6.4.tgz", "integrity": "sha512-HfTn/bd8mfy/61vEqaBelNiNnvAbUtME2S25A67Nb34zVuCSCRIX4SseXY6zBnOFj3oLisaEqhVcJmVPAej67g==", @@ -6193,7 +6193,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/performance-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/performance-compat": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@firebase/performance-compat/-/performance-compat-0.2.4.tgz", "integrity": "sha512-nnHUb8uP9G8islzcld/k6Bg5RhX62VpbAb/Anj7IXs/hp32Eb2LqFPZK4sy3pKkBUO5wcrlRWQa6wKOxqlUqsg==", @@ -6210,13 +6210,13 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/performance-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/performance-types": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.2.0.tgz", "integrity": "sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/remote-config": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/remote-config": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.4.4.tgz", "integrity": "sha512-x1ioTHGX8ZwDSTOVp8PBLv2/wfwKzb4pxi0gFezS5GCJwbLlloUH4YYZHHS83IPxnua8b6l0IXUaWd0RgbWwzQ==", @@ -6232,7 +6232,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/remote-config-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/remote-config-compat": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@firebase/remote-config-compat/-/remote-config-compat-0.2.4.tgz", "integrity": "sha512-FKiki53jZirrDFkBHglB3C07j5wBpitAaj8kLME6g8Mx+aq7u9P7qfmuSRytiOItADhWUj7O1JIv7n9q87SuwA==", @@ -6249,13 +6249,13 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/remote-config-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/remote-config-types": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.3.0.tgz", "integrity": "sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/storage": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/storage": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.11.2.tgz", "integrity": "sha512-CtvoFaBI4hGXlXbaCHf8humajkbXhs39Nbh6MbNxtwJiCqxPy9iH3D3CCfXAvP0QvAAwmJUTK3+z9a++Kc4nkA==", @@ -6270,7 +6270,7 @@ "@firebase/app": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/storage-compat": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/storage-compat": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@firebase/storage-compat/-/storage-compat-0.3.2.tgz", "integrity": "sha512-wvsXlLa9DVOMQJckbDNhXKKxRNNewyUhhbXev3t8kSgoCotd1v3MmqhKKz93ePhDnhHnDs7bYHy+Qa8dRY6BXw==", @@ -6286,7 +6286,7 @@ "@firebase/app-compat": "0.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/storage-types": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/storage-types": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.8.0.tgz", "integrity": "sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==", @@ -6296,7 +6296,7 @@ "@firebase/util": "1.x" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/util": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/util": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.9.3.tgz", "integrity": "sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA==", @@ -6305,13 +6305,13 @@ "tslib": "^2.1.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@firebase/webchannel-wrapper": { + "node_modules/@likeminds.community/feed-js/node_modules/@firebase/webchannel-wrapper": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.10.1.tgz", "integrity": "sha512-Dq5rYfEpdeel0bLVN+nfD1VWmzCkK+pJbSjIawGE+RY4+NIJqhbUDDQjvV0NUK84fMfwxvtFoCtEe70HfZjFcw==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/@grpc/grpc-js": { + "node_modules/@likeminds.community/feed-js/node_modules/@grpc/grpc-js": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.7.3.tgz", "integrity": "sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==", @@ -6324,7 +6324,7 @@ "node": "^8.13.0 || >=10.10.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/cliui": { + "node_modules/@likeminds.community/feed-js/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", @@ -6335,7 +6335,7 @@ "wrap-ansi": "^7.0.0" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/firebase": { + "node_modules/@likeminds.community/feed-js/node_modules/firebase": { "version": "9.23.0", "resolved": "https://registry.npmjs.org/firebase/-/firebase-9.23.0.tgz", "integrity": "sha512-/4lUVY0lUvBDIaeY1q6dUYhS8Sd18Qb9CgWkPZICUo9IXpJNCEagfNZXBBFCkMTTN5L5gx2Hjr27y21a9NzUcA==", @@ -6369,13 +6369,13 @@ "@firebase/util": "1.9.3" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/long": { + "node_modules/@likeminds.community/feed-js/node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", "license": "Apache-2.0" }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/node-fetch": { + "node_modules/@likeminds.community/feed-js/node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", @@ -6395,7 +6395,7 @@ } } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/protobufjs": { + "node_modules/@likeminds.community/feed-js/node_modules/protobufjs": { "version": "6.11.4", "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", @@ -6421,7 +6421,7 @@ "pbts": "bin/pbts" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/yargs": { + "node_modules/@likeminds.community/feed-js/node_modules/yargs": { "version": "16.2.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", @@ -6439,7 +6439,7 @@ "node": ">=10" } }, - "node_modules/@likeminds.community/feed-js-beta/node_modules/yargs-parser": { + "node_modules/@likeminds.community/feed-js/node_modules/yargs-parser": { "version": "20.2.9", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", diff --git a/core/package.json b/core/package.json index 188fbfd..c3b41ab 100644 --- a/core/package.json +++ b/core/package.json @@ -25,7 +25,7 @@ "@aws-sdk/credential-providers": "3.556.0", "@emotion/react": "11.11.3", "@emotion/styled": "11.11.0", - "@likeminds.community/feed-js": "1.19.0", + "@likeminds.community/feed-js": "file:../../../dataFeed/likeminds-feed-js-data/likeminds.community-feed-js-1.19.0.tgz", "@mui/material": "5.15.10", "@mui/x-date-pickers": "7.22.2", "@testing-library/jest-dom": "5.14.1", @@ -114,18 +114,5 @@ "peerDependencies": { "react": "^18.3.1", "react-dom": "^18.3.1" - }, - "main": "dist/index.js", - "module": "dist/index.js", - "files": [ - "dist" - ], - "types": "dist/index.d.ts", - "type": "module", - "exports": { - ".": { - "import": "./dist/index.js", - "require": "./dist/index.umd.cjs" - } } } diff --git a/core/src/App.css b/core/src/App.css new file mode 100644 index 0000000..b920804 --- /dev/null +++ b/core/src/App.css @@ -0,0 +1,185 @@ +.custom-cta-link-input { + padding: 8px; + width: 100%; + font-size: 16px; + font-family: "Roboto"; + margin-bottom: 16px; +} + +.lm-create-dialog-video-icon-container { + cursor: pointer; +} + +.create-post-initiate-view-button { + background-color: var(--lm-feed-primary-color); + color: white; + outline: none; + padding: 8px 16px; + border: none; + font-size: 16px; + margin: 12px 18px; +} + +.custom-cta-action { + height: 40px; + width: 40px; + font-family: Roboto; + font-size: 16px; + border: none; + outline: none; + position: absolute; + bottom: 16px; + right: 16px; + background-color: var(--lm-feed-primary-color); + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + cursor: pointer; +} + +.lm-wrapper { + display: flex; +} + +.relative { + position: relative; +} + +.lm-sidenav-wrapper { + width: 100%; + max-width: 92px; + position: fixed; + height: 100%; + background-color: #fff; + display: flex; + flex-direction: column; + justify-content: space-between; +} + +.lm-sidenav { + height: auto; + max-width: 92px; + width: 100%; + background-color: #fff; + overflow: hidden; + border: none; + position: sticky; + top: 0; + margin-top: 70px; +} + +.lm-sidenav-icon-wrapper { + height: 64px; + width: 100%; + cursor: pointer; + margin: 20px 0; + position: relative; + margin-right: auto; + margin-left: auto; +} + +.lm-nav-selected-icons { + height: 64px; + width: 64px; + margin-left: auto; + margin-right: auto; + display: flex; + justify-content: center; + align-items: center; +} + +.lm-nav-selected-icons::before { + content: ""; + position: absolute; + top: 0; + left: 0; + width: 4px; + height: 100%; + background-color: var(--lm-feed-primary-color); + border-radius: 20px; +} + +.moderation-icon { + margin-bottom: 100px; +} + +.lm-nav-icons { + height: 64px; + width: 64px; + margin-left: auto; + margin-right: auto; + display: flex; + justify-content: center; + align-items: center; +} + +.lm-selected-background { + background-color: var(--lm-feed-bg-color); + border-radius: 20px; +} + +.lm-header-toggle-wrapper { + display: flex; + gap: 16px; +} + +.toggle-sidebar-menu-header { + display: flex; + justify-content: space-between; + width: 100%; +} + +.toggle-sidebar-menu-heading { + color: #333333; + font-weight: 700 !important; + font-size: 13px; +} + +.lm-sidebar-headings { + color: #9B9B9B; + font-size: 14px; + font-weight: 500; +} + +.lm-sidebar-headings-selected { + color: var(--lm-feed-primary-color); +} + +.lm-mobile-view-toggle-bar { + display: none; + z-index: 10; + margin-top: 20px; + margin-left: 10px; + position: fixed; +} + +/* Mobile Devices */ +@media only screen and (max-width: 480px) { + .lm-sidenav { + display: none; + } + .moderation-mobile-tab-wrapper, .lm-mobile-view-toggle-bar { + display: block; + } +} + +/* Tablets */ +@media only screen and (max-width: 768px) { + .lm-sidenav { + display: none; + } + .moderation-mobile-tab-wrapper, .lm-mobile-view-toggle-bar { + display: block; + } +} + +/* Small screens, laptops */ +@media only screen and (max-width: 1024px) { + .lm-sidenav { + display: none; + } + .lm-mobile-view-toggle-bar { + display: block; + } +} diff --git a/core/src/App.tsx b/core/src/App.tsx new file mode 100644 index 0000000..d44c9fd --- /dev/null +++ b/core/src/App.tsx @@ -0,0 +1,71 @@ +import { useState } from "react"; +import { + LMSocialFeed, + LMFeedNotificationHeader, + LMFeedUniversalFeed, + LMFeedModerationScreen, + LMFeedCustomEvents, + initiateFeedClient, + LMCoreCallbacks, +} from "./old_index"; + +import SideNavbar from "./SideNavbar"; +import DrawerList from "./DrawerList"; +import "./App.css"; +// import WarningIcon from "./warning-circle-dashboard.svg"; + +function App() { + const [userDetails] = useState<{ + uuid?: string; + username?: string; + isGuest?: boolean; + apiKey?: string; + }>({ + uuid: "1e5af4c4-b4a6-4f88-a71d-b82589e65003", + username: "yash-test1", + isGuest: false, // Turn this flag to true in case you have a guest user + apiKey: "d3e431f9-8c92-4c57-b226-a413a5d8b6eb", + // apiKey: "500f73a0-0be6-40d2-a705-78c31861323c", + }); + + // Initiated LMFeedClient + const lmFeedClient = initiateFeedClient(); + + // Initiated LMFeedCustomEvents + const customEventClient = new LMFeedCustomEvents(); + const lmCoreCallbacks = new LMCoreCallbacks( + () => {}, + () => { + return { + accessToken: "", + refreshToken: "", + }; + }, + ); + + + + const isModerationRoute = window.location.pathname === "/moderation"; + return ( + <> + + +
+ + + {isModerationRoute ? ( + + ) : ( + + )} + +
+ + ); +} +export default App; diff --git a/core/src/DrawerList.tsx b/core/src/DrawerList.tsx new file mode 100644 index 0000000..0b996c5 --- /dev/null +++ b/core/src/DrawerList.tsx @@ -0,0 +1,135 @@ +import { useState } from "react"; +import Box from "@mui/material/Box"; +import Drawer from "@mui/material/Drawer"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemButton from "@mui/material/ListItemButton"; +import ListItemIcon from "@mui/material/ListItemIcon"; +import ListItemText from "@mui/material/ListItemText"; + +import toggleIcon from "./assets/images/toggle-icon.svg"; +import HomeIcon from "./assets/images/bottombar-home-icon.svg"; +import SelectedHomeIcon from "./assets/images/sidenav-selected-home.svg"; +import ModerationIcon from "./assets/images/sidenav-unselected-moderation.svg"; +import SelectedModerationIcon from "./assets/images/bottom-bar-moderation-icon.svg"; +import CancelIcon from "./assets/images/cancel-model-icon.svg"; + +const DrawerList = () => { + const [open, setOpen] = useState(false); + const user = JSON.parse(localStorage.getItem("LOCAL_USER") || "{}"); + const isCM = user?.state === 1; + const currentScreen = window.location.pathname.includes("moderation"); + const toggleDrawer = (newOpen: boolean) => () => { + setOpen(newOpen); + }; + + const DrawerList = ( + + + + + + + close-icon + + + + + + { + const url = new URL(window.location.href); + if (url.pathname.endsWith("/moderation")) { + url.pathname = url.pathname.replace(/\/moderation$/, ""); + } + window.location.assign(url.toString()); + }} + > + + {!currentScreen ? ( + post approval + ) : ( + post approval + )} + + + + + {isCM ? ( + + { + const url = new URL(window.location.href); + if (!url.pathname.endsWith("/moderation")) { + url.pathname = + url.pathname.replace(/\/$/, "") + "/moderation"; + } + window.location.assign(url.toString()); + }} + > + + {currentScreen ? ( + post approval + ) : ( + post approval + )} + + + + + ) : null} + + + ); + + return ( +
+ post approval + + {DrawerList} + +
+ ); +}; + +export default DrawerList; diff --git a/core/src/SideNavbar.tsx b/core/src/SideNavbar.tsx new file mode 100644 index 0000000..1dbdbe0 --- /dev/null +++ b/core/src/SideNavbar.tsx @@ -0,0 +1,59 @@ +import HomeIcon from "./assets/images/home-icon.svg"; +import ModerationIcon from "./assets/images/moderation-icon.svg"; + +const SideNavbar = () => { + const user = JSON.parse(localStorage.getItem("LOCAL_USER") || "{}"); + const isCM = user?.state === 1; + const isModerationScreen = window.location.pathname.includes("moderation"); + return ( +
+
+
+
{ + const url = new URL(window.location.href); + if (url.pathname.endsWith("/moderation")) { + url.pathname = url.pathname.replace(/\/moderation$/, ""); + } + window.location.assign(url.toString()); + }} + > +
+ home +
+
+
+ {isCM ? ( +
{ + const url = new URL(window.location.href); + if (!url.pathname.endsWith("/moderation")) { + url.pathname = url.pathname.replace(/\/$/, "") + "/moderation"; + } + window.location.assign(url.toString()); + }} + > +
+ moderation +
+
+ ) : null} +
+
+ ); +}; + +export default SideNavbar; diff --git a/core/src/components/LMFeedDataContextProvider.tsx b/core/src/components/LMFeedDataContextProvider.tsx index f04b96f..3b9dd6a 100644 --- a/core/src/components/LMFeedDataContextProvider.tsx +++ b/core/src/components/LMFeedDataContextProvider.tsx @@ -8,7 +8,7 @@ import { LMFeedModerationScreen } from "./LMFeedModerationScreen"; import LMFeedDetails from "./LMFeedDetails"; import { returnPostId } from "../shared/utils"; -import { CustomAgentProviderContext } from ".."; +import { CustomAgentProviderContext } from "../old_index"; import { LMFeedCurrentUserState } from "../shared/enums/lmCurrentUserState"; export interface LMFeedListDataContextProviderInterface { diff --git a/core/src/components/LMPostPoll.tsx b/core/src/components/LMPostPoll.tsx index 476c828..74122cd 100644 --- a/core/src/components/LMPostPoll.tsx +++ b/core/src/components/LMPostPoll.tsx @@ -1,4 +1,4 @@ -import { FeedPostContext } from ".."; +import { FeedPostContext } from "../old_index"; import { useContext, useMemo } from "react"; import { getTimeLeftInPoll, diff --git a/core/src/components/LMQNAFeedDataContextProvider.tsx b/core/src/components/LMQNAFeedDataContextProvider.tsx index dfbe7e7..bbb23f9 100644 --- a/core/src/components/LMQNAFeedDataContextProvider.tsx +++ b/core/src/components/LMQNAFeedDataContextProvider.tsx @@ -7,7 +7,7 @@ import { returnPostId } from "../shared/utils"; import LMQNAFeedDetails from "./LMQNAFeedDetails"; import LMQNAFeedUniversalFeed from "./LMQNAFeedUniversalFeed"; import { LMFeedModerationScreen } from "./LMFeedModerationScreen"; -import { CustomAgentProviderContext } from ".."; +import { CustomAgentProviderContext } from "../old_index"; import { LMFeedCurrentUserState } from "../shared/enums/lmCurrentUserState"; export interface LMQNAFeedDataContextProviderInterface { diff --git a/core/src/hooks/usePostPoll.ts b/core/src/hooks/usePostPoll.ts index e6ef091..a228ee5 100644 --- a/core/src/hooks/usePostPoll.ts +++ b/core/src/hooks/usePostPoll.ts @@ -17,7 +17,7 @@ import { useState, } from "react"; import LMFeedGlobalClientProviderContext from "../contexts/LMFeedGlobalClientProviderContext"; -import { FeedPostContext } from ".."; +import { FeedPostContext } from "../old_index"; import { User } from "../shared/types/models/member"; import { CustomAgentProviderContext } from "../contexts/LMFeedCustomAgentProviderContext"; import { WidgetResponse } from "../shared/utils"; @@ -418,10 +418,10 @@ export function usePostPoll(): UsePostPoll { isAddOptionDialogOpen, handleAddOptionDialog: onAddPollOptionsClicked ? onAddPollOptionsClicked.bind(null, { - pollCreationDataStore: pollPostDataStore, - applicationGeneralStore: applicationGeneralsStore, - defaultActions: defaultActions, - }) + pollCreationDataStore: pollPostDataStore, + applicationGeneralStore: applicationGeneralsStore, + defaultActions: defaultActions, + }) : handleAddOptionDialog, showSubmitVoteButton, showAddOptionButton, @@ -431,10 +431,10 @@ export function usePostPoll(): UsePostPoll { pollResultSelectedTab, setPollResultSelectedTabFunction: onOptionSelected ? onOptionSelected.bind(null, { - pollCreationDataStore: pollPostDataStore, - applicationGeneralStore: applicationGeneralsStore, - defaultActions: defaultActions, - }) + pollCreationDataStore: pollPostDataStore, + applicationGeneralStore: applicationGeneralsStore, + defaultActions: defaultActions, + }) : setPollResultSelectedTabFunction, totalMultipleOptions, newOption, @@ -444,17 +444,17 @@ export function usePostPoll(): UsePostPoll { handleOptionClick, handleAddOptionSubmit: onSubmitButtonClick ? onSubmitButtonClick.bind(null, { - pollCreationDataStore: pollPostDataStore, - applicationGeneralStore: applicationGeneralsStore, - defaultActions: defaultActions, - }) + pollCreationDataStore: pollPostDataStore, + applicationGeneralStore: applicationGeneralsStore, + defaultActions: defaultActions, + }) : handleAddOptionSubmit, submitVoteHandler: onSubmitButtonClicked ? onSubmitButtonClicked.bind(null, { - pollCreationDataStore: pollPostDataStore, - applicationGeneralStore: applicationGeneralsStore, - defaultActions: defaultActions, - }) + pollCreationDataStore: pollPostDataStore, + applicationGeneralStore: applicationGeneralsStore, + defaultActions: defaultActions, + }) : submitVoteHandler, totalVotesCount, totalMembersVotes, @@ -462,10 +462,10 @@ export function usePostPoll(): UsePostPoll { setIsEditModeFunction, onOptionVoteCountClick: onPollOptionClicked ? onPollOptionClicked.bind(null, { - pollCreationDataStore: pollPostDataStore, - applicationGeneralStore: applicationGeneralsStore, - defaultActions: defaultActions, - }) + pollCreationDataStore: pollPostDataStore, + applicationGeneralStore: applicationGeneralsStore, + defaultActions: defaultActions, + }) : onOptionVoteCountClick, pollReadMoreTapped, pollReadMoreTappedFunction, diff --git a/core/src/index.tsx b/core/src/index.tsx new file mode 100644 index 0000000..ed38183 --- /dev/null +++ b/core/src/index.tsx @@ -0,0 +1,5 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App.tsx"; + +ReactDOM.createRoot(document.getElementById("root")!).render(); diff --git a/core/src/index.ts b/core/src/old_index.ts similarity index 100% rename from core/src/index.ts rename to core/src/old_index.ts diff --git a/core/src/shared/utils.ts b/core/src/shared/utils.ts index c166418..2ce8308 100644 --- a/core/src/shared/utils.ts +++ b/core/src/shared/utils.ts @@ -6,7 +6,7 @@ import { Pluralize } from "./variables"; import { TokenValues } from "./enums/tokens"; import { WordAction } from "./enums/wordAction"; -import { LMDisplayMessages } from ".."; +import { LMDisplayMessages } from "../old_index"; import { PollMultipleSelectState, PollType } from "./enums/ImPollType"; import { GetCommunityConfigurationsResponse } from "./types/api-responses/getComunityConfigurations"; From f368718cffb3cfda408038660587d7a23e517d56 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Thu, 24 Apr 2025 21:56:17 +0530 Subject: [PATCH 02/22] added save post locally functionality --- core/src/components/LMFeedUniversalFeed.tsx | 2 + core/src/components/LMFeedUploadBanner.tsx | 158 +++++++++++++++++ core/src/hooks/useCreatePost.ts | 164 ++++++++++++++++-- .../constants/lmFeedCustomEventNames.ts | 2 + core/src/shared/helper.ts | 18 +- 5 files changed, 333 insertions(+), 11 deletions(-) create mode 100644 core/src/components/LMFeedUploadBanner.tsx diff --git a/core/src/components/LMFeedUniversalFeed.tsx b/core/src/components/LMFeedUniversalFeed.tsx index 17db60c..e18c5c2 100644 --- a/core/src/components/LMFeedUniversalFeed.tsx +++ b/core/src/components/LMFeedUniversalFeed.tsx @@ -14,6 +14,7 @@ import LMFeedAllMembers from "./LMFeedAllMembers"; import { LMFeedDataContext } from "../contexts/LMFeedDataContext"; import LMFeedGlobalClientProviderContext from "../contexts/LMFeedGlobalClientProviderContext"; import { LMFeedNotificationAnalytics } from "../shared/enums/lmNotificationAnalytics"; +import LMFeedUploadBanner from "./LMFeedUploadBanner"; interface LMFeedUniversalFeedProps { followedTopics?: string[]; @@ -116,6 +117,7 @@ const LMFeedUniversalFeed = ({ followedTopics }: LMFeedUniversalFeedProps) => { return (
+ {CustomComponents?.CustomTopicDropDown ? ( CustomComponents.CustomTopicDropDown diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx new file mode 100644 index 0000000..2753acc --- /dev/null +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -0,0 +1,158 @@ +import React, { useContext, useEffect, useState } from "react"; +import { LMFeedCustomActionEvents } from "../shared/constants/lmFeedCustomEventNames"; +import LMFeedGlobalClientProviderContext from "../contexts/LMFeedGlobalClientProviderContext"; +import { DeleteTemporaryPostRequest } from "@likeminds.community/feed-js"; +import { HelperFunctionsClass } from "../shared/helper"; +// import deleteTemporaryPost from "@likeminds.community/feed-js"; +const LMFeedUploadBanner = () => { + const [isVisible, setIsVisible] = useState(false); + const [tempPostId, setTempPostId] = useState(null); + const { customEventClient, lmFeedclient } = useContext( + LMFeedGlobalClientProviderContext, + ); + // const { temporaryPost } = useContext(LMFeedCreatePostContext); + + useEffect(() => { + console.log("LMFeedUploadBanner mounted"); + const handlePostCreationStarted = (event: Event) => { + const customEvent = event as CustomEvent; + console.log("Post creation started", customEvent.detail); + setTempPostId(customEvent.detail.tempId); + setIsVisible(true); + }; + + const handlePostCreated = () => { + console.log("Post created"); + setIsVisible(false); + setTempPostId(null); + }; + + const handlePostCreationFailed = () => { + console.log("Post creation failed"); + setIsVisible(false); + setTempPostId(null); + }; + + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATION_STARTED, + handlePostCreationStarted, + ); + + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATED, + handlePostCreated, + ); + + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + handlePostCreationFailed, + ); + + return () => { + console.log("LMFeedUploadBanner unmounting"); + customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_STARTED); + customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATED); + customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_FAILED); + }; + }, [customEventClient]); + + const handleCancel = async () => { + console.log("entry mil gayi ji"); + console.log("tempPostId:", tempPostId); + if (tempPostId && lmFeedclient) { + try { + console.log("Cancelling upload for post:", tempPostId); + // Cancel the AWS upload first + HelperFunctionsClass.cancelUpload(); + console.log("aws upload cancel"); + + // Then delete the temporary post + const request = DeleteTemporaryPostRequest.builder() + .setTemporaryPostId(tempPostId) + .build(); + + // Delete from local storage + await lmFeedclient?.deleteTemporaryPost(request); + console.log("hello", request.temporaryPostId); + console.log("deleted temporary post from local storage"); + + // Clear the temporary post from state + setTempPostId(null); + setIsVisible(false); + + // Dispatch the failed event to hide the banner + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + ); + console.log("event cancelled"); + } catch (error) { + console.error("Error during cancellation:", error); + // Even if there's an error, try to hide the banner and clear state + setTempPostId(null); + setIsVisible(false); + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + ); + } + } else { + console.log("No temporary post ID or client available"); + } + }; + + console.log( + "LMFeedUploadBanner rendering, isVisible:", + isVisible, + "tempPostId:", + tempPostId, + ); + + if (!isVisible) return null; + + return ( +
+
+
+ Uploading post... +
hello this the original banner
+ +
+
+ ); +}; + +export default LMFeedUploadBanner; diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index 680e5ee..d4436b8 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -46,6 +46,7 @@ import { ZeroArgVoidReturns, } from "./useInputs"; import { SelectChangeEvent } from "@mui/material"; +import { SaveTemporaryPostRequest } from "@likeminds.community/feed-js"; interface UseCreatePost { postText: string | null; @@ -435,7 +436,7 @@ export function useCreatePost(): UseCreatePost { setShowOGTagViewContainer(false); } - function pollExpiryTimeClickFunction() { } + function pollExpiryTimeClickFunction() {} function editPollFunction() { setPreviewPoll(false); @@ -474,12 +475,84 @@ export function useCreatePost(): UseCreatePost { const attachmentResponseArray: Attachment[] = []; + // // Check if post has media attachments + // const hasMediaAttachments = mediaList.some( + // (file) => + // file.type.includes("image") || + // file.type.includes("video") || + // file.type.includes("pdf") || + // (file.type.includes("video") && + // mediaUploadMode === LMFeedCreatePostMediaUploadMode.REEL), + // ); + + // if (hasMediaAttachments) { + // // Create temporary post ID + // const tempId = `-${Date.now()}`; + + // // Create temporary post object + // const tempPost = SaveTemporaryPostRequest.builder() + // .setTempPost({ + // post: { + // id: tempId, + // text: textContent, + // attachments: attachmentResponseArray, + // topics: selectedTopicIds, + // isAnonymous: isAnonymousPost, + // heading: question || "", + // createdAt: Date.now(), + // commentsCount: 0, + // isEdited: false, + // isLiked: false, + // isPinned: false, + // isRepost: false, + // isRepostedByUser: false, + // isSaved: false, + // likesCount: 0, + // menuItems: [], + // repostCount: 0, + // tempId: null, + // updatedAt: Date.now(), + // uuid: "", + // isHidden: false, + // }, + // }) + // .build(); + + // // Save to local storage + // await lmFeedclient?.saveTemporaryPost(tempPost); + + // // Set the temporary post in the context + // setTemporaryPost(tempPost.tempPost.post); + + // // Upload media to AWS S3 + // try { + // // Show banner only when we start AWS upload + // customEventClient?.dispatchEvent( + // LMFeedCustomActionEvents.POST_CREATION_STARTED, + // { tempId }, + // ); + + // for (const file of mediaList) { + // await HelperFunctionsClass.uploadMedia( + // file, + // currentUser?.sdkClientInfo.uuid || "", + // ); + // } + // } catch (error) { + // // Hide banner if upload fails + // customEventClient?.dispatchEvent( + // LMFeedCustomActionEvents.POST_CREATION_FAILED, + // ); + // throw error; // Re-throw to handle in the outer catch block + // } + // } + if (pollText.length !== 0) { const pollOtionsList: string[] = pollOptions.map((obj) => obj.text); const multipleSelectState = numberToPollMultipleSelectState[ - advancedPollOptions.MULTIPLE_SELECTION_STATE + advancedPollOptions.MULTIPLE_SELECTION_STATE ]; const pollType = advancedPollOptions.DONT_SHOW_LIVE_RESULTS @@ -524,7 +597,7 @@ export function useCreatePost(): UseCreatePost { const attachmentType = file.type.includes("image") ? 1 : file.type.includes("video") && - mediaUploadMode === LMFeedCreatePostMediaUploadMode.REEL + mediaUploadMode === LMFeedCreatePostMediaUploadMode.REEL ? 11 // Setting attachmentType to 11 for reels : file.type.includes("video") ? 2 @@ -663,8 +736,8 @@ export function useCreatePost(): UseCreatePost { const newCustomWidgetsData = customWidgetsData.map((customData) => { return { meta: customData, - } - }) + }; + }); for (const customWidgetData of newCustomWidgetsData) { attachmentResponseArray.push( LMFeedPostAttachment.builder() @@ -679,6 +752,73 @@ export function useCreatePost(): UseCreatePost { } } + // Check if post has media attachments + const hasMediaAttachments = attachmentResponseArray.some( + (attachment) => + attachment.type === AttachmentType.IMAGE || + attachment.type === AttachmentType.VIDEO || + attachment.type === AttachmentType.DOCUMENT || + attachment.type === AttachmentType.REEL, + ); + + if (hasMediaAttachments) { + const tempId = `-${Date.now()}`; + const tempPost = SaveTemporaryPostRequest.builder() + .setTempPost({ + post: { + id: tempId, + text: textContent, + attachments: attachmentResponseArray, + topics: selectedTopicIds, + isAnonymous: isAnonymousPost, + heading: question || "", + createdAt: Date.now(), + commentsCount: 0, + isEdited: false, + isLiked: false, + isPinned: false, + isRepost: false, + isRepostedByUser: false, + isSaved: false, + likesCount: 0, + menuItems: [], + repostCount: 0, + tempId: null, + updatedAt: Date.now(), + uuid: "", + isHidden: false, + }, + }) + .build(); + // Save to local storage + await lmFeedclient?.saveTemporaryPost(tempPost); + + // Set the temporary post in the context + setTemporaryPost(tempPost.tempPost.post); + + // Upload media to AWS S3 + try { + // Show banner only when we start AWS upload + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_STARTED, + { tempId }, + ); + + for (const file of mediaList) { + await HelperFunctionsClass.uploadMedia( + file, + currentUser?.sdkClientInfo.uuid || "", + ); + } + } catch (error) { + // Hide banner if upload fails + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + ); + throw error; // Re-throw to handle in the outer catch block + } + } + const addPostRequestBuilder = AddPostRequest.builder() .setAttachments(attachmentResponseArray) .setText(textContent) @@ -701,6 +841,10 @@ export function useCreatePost(): UseCreatePost { } } catch (error) { console.log(error); + // Dispatch failed event if not already dispatched + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + ); } finally { setOpenPostCreationProgressBar!(false); } @@ -780,8 +924,8 @@ export function useCreatePost(): UseCreatePost { const newCustomWidgetsData = customWidgetsData.map((customData) => { return { meta: customData, - } - }) + }; + }); for (const customWidgetData of newCustomWidgetsData) { attachmentResponseArray.push( LMFeedPostAttachment.builder() @@ -1074,9 +1218,9 @@ export function useCreatePost(): UseCreatePost { createPostComponentClickCustomCallback: createPostComponentClickCustomCallback ? createPostComponentClickCustomCallback.bind( - null, - postCreationActionAndDataStore, - ) + null, + postCreationActionAndDataStore, + ) : undefined, openCreatePollDialog, setOpenCreatePollDialog, diff --git a/core/src/shared/constants/lmFeedCustomEventNames.ts b/core/src/shared/constants/lmFeedCustomEventNames.ts index 9203757..2c2a2a6 100644 --- a/core/src/shared/constants/lmFeedCustomEventNames.ts +++ b/core/src/shared/constants/lmFeedCustomEventNames.ts @@ -21,4 +21,6 @@ export enum LMFeedCustomActionEvents { UNHIDDEN_ON_DETAIL = "UNHIDDEN_ON_DETAIL", MODERATION_UPDATED = "MODERATION_UPDATED", CURRENT_USER_CM = "CURRENT_USER_CM", + POST_CREATION_STARTED = "POST_CREATION_STARTED", + POST_CREATION_FAILED = "POST_CREATION_FAILED", } diff --git a/core/src/shared/helper.ts b/core/src/shared/helper.ts index 751e54a..7c8ca88 100644 --- a/core/src/shared/helper.ts +++ b/core/src/shared/helper.ts @@ -10,6 +10,8 @@ import { import { fromCognitoIdentityPool } from "@aws-sdk/credential-provider-cognito-identity"; import { LMAppAwsKeys } from "./constants/lmAppAwsKeys"; export class HelperFunctionsClass { + private static currentUpload: AbortController | null = null; + static detectLinks(text: string) { const regex = /\b(?:https?:\/\/)?(?:[\w.]+\.\w+)(?:(?<=\\n)|\b)/g; const links = text?.match(regex); @@ -49,6 +51,10 @@ export class HelperFunctionsClass { media, userUniqueId, ); + + // Create a new AbortController for this upload + this.currentUpload = new AbortController(); + const command = new PutObjectCommand({ Key, Bucket, @@ -56,7 +62,17 @@ export class HelperFunctionsClass { ACL, ContentType, }); - return s3Client.send(command); + + // Pass the abort signal when sending the command + return s3Client.send(command, { + abortSignal: this.currentUpload.signal + }); + } + static cancelUpload() { + if (this.currentUpload) { + this.currentUpload.abort(); + this.currentUpload = null; + } } private static buildUploadParams( From 4a1daee98de9477e9c9584fcd02670afceb86409 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Fri, 25 Apr 2025 16:11:30 +0530 Subject: [PATCH 03/22] handled successful deletion --- core/package-lock.json | 141 +++++++++++++++++--------------- core/src/hooks/useCreatePost.ts | 15 +++- 2 files changed, 88 insertions(+), 68 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index 1192821..ff51c31 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -4223,9 +4223,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.0.tgz", - "integrity": "sha512-WhCn7Z7TauhBtmzhvKpoQs0Wwb/kBcy4CwpuI0/eEIr2Lx2auxmulAzLr91wVZJaz47iUZdkXOK7WlAfxGKCnA==", + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", + "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" @@ -4940,9 +4940,9 @@ } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.13", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.13.tgz", - "integrity": "sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw==", + "version": "0.7.15", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", + "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", @@ -5746,7 +5746,7 @@ "node_modules/@likeminds.community/feed-js": { "version": "1.19.0", "resolved": "file:../../../dataFeed/likeminds-feed-js-data/likeminds.community-feed-js-1.19.0.tgz", - "integrity": "sha512-3mqBchUbec2/6IK9Y9d1B96hZ7spqpjzb87997ZgoCURwrm+fkVcCm/xsZoXkEzCCHW2gf059JrvElmvsmxmbA==", + "integrity": "sha512-/T2Lxgv4ONXw927JPU3xzlb5B3HqY5goaU5VF4BQUVXwcMes564DSXdFURt83zx03UXrJdW09JSFs8jTTVa7YQ==", "license": "ISC", "dependencies": { "@aws-sdk/client-s3": "^3.226.0", @@ -7403,16 +7403,16 @@ } }, "node_modules/@pkgr/core": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.2.tgz", - "integrity": "sha512-25L86MyPvnlQoX2MTIV2OiUcb6vJ6aRbFa9pbwByn95INKD5mFH2smgjDhq+fwJoqAgvgbdJLj6Tz7V9X5CFAQ==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", + "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", "dev": true, "license": "MIT", "engines": { "node": "^12.20.0 || ^14.18.0 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "url": "https://opencollective.com/pkgr" } }, "node_modules/@pmmmwh/react-refresh-webpack-plugin": { @@ -10108,17 +10108,17 @@ "license": "ISC" }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", - "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", + "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.26.0", + "@babel/core": "^7.26.10", "@babel/plugin-transform-react-jsx-self": "^7.25.9", "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", - "react-refresh": "^0.14.2" + "react-refresh": "^0.17.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -10128,9 +10128,9 @@ } }, "node_modules/@vitejs/plugin-react/node_modules/react-refresh": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", - "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", "dev": true, "license": "MIT", "engines": { @@ -11643,9 +11643,9 @@ } }, "node_modules/cacheable/node_modules/keyv": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.2.tgz", - "integrity": "sha512-Lji2XRxqqa5Wg+CHLVfFKBImfJZ4pCSccu9eVWK6w4c2SDFLd8JAn1zqTuSFnsxb7ope6rMsnIHfp+eBbRBRZQ==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.3.3.tgz", + "integrity": "sha512-Rwu4+nXI9fqcxiEHtbkvoes2X+QfkTRo1TMkPfwzipGsJlJO/z69vqB4FNl9xJ3xCpAcbkvmEabZfPzrwN3+gQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11752,9 +11752,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001713", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz", - "integrity": "sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==", + "version": "1.0.30001715", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", + "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", "funding": [ { "type": "opencollective", @@ -13047,9 +13047,9 @@ } }, "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz", + "integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==", "license": "Apache-2.0", "optional": true, "engines": { @@ -13335,9 +13335,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.136", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz", - "integrity": "sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==", + "version": "1.5.142", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.142.tgz", + "integrity": "sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w==", "license": "ISC" }, "node_modules/emittery": { @@ -13575,9 +13575,9 @@ } }, "node_modules/es-module-lexer": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", - "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", "license": "MIT" }, "node_modules/es-object-atoms": { @@ -14722,9 +14722,9 @@ } }, "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz", - "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==", + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -19372,9 +19372,9 @@ } }, "node_modules/known-css-properties": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", - "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz", + "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==", "dev": true, "license": "MIT" }, @@ -19561,9 +19561,9 @@ "license": "MIT" }, "node_modules/long": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/long/-/long-5.3.1.tgz", - "integrity": "sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", "license": "Apache-2.0" }, "node_modules/loose-envify": { @@ -22411,9 +22411,9 @@ "license": "MIT" }, "node_modules/protobufjs": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.4.0.tgz", - "integrity": "sha512-mRUWCc3KUU4w1jU8sGxICXH/gNS94DvI1gxqDvBzhj1JpcsimQkYiOJfwsPUykUI5ZaspFbSgmBLER8IrQ3tqw==", + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.0.tgz", + "integrity": "sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -23727,9 +23727,9 @@ "license": "CC0-1.0" }, "node_modules/sass": { - "version": "1.86.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.3.tgz", - "integrity": "sha512-iGtg8kus4GrsGLRDLRBRHY9dNVA78ZaS7xr01cWnS7PEMQyFtTqBiyCrfpTYTZXRWM94akzckYjh8oADfFNTzw==", + "version": "1.87.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.87.0.tgz", + "integrity": "sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==", "dev": true, "license": "MIT", "dependencies": { @@ -23846,9 +23846,9 @@ } }, "node_modules/schema-utils": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz", - "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.2.tgz", + "integrity": "sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==", "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", @@ -24991,9 +24991,9 @@ } }, "node_modules/stylelint": { - "version": "16.18.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.18.0.tgz", - "integrity": "sha512-OXb68qzesv7J70BSbFwfK3yTVLEVXiQ/ro6wUE4UrSbKCMjLLA02S8Qq3LC01DxKyVjk7z8xh35aB4JzO3/sNA==", + "version": "16.19.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.19.0.tgz", + "integrity": "sha512-BJzc5mo/ez0H/ZSl3UbxGdkK/s0kFGsF5/k6IGu4z8wJ1qp49WrOS9RxswvcN6HMirt0g/iiJqOwLHTbWv49IQ==", "dev": true, "funding": [ { @@ -25020,7 +25020,7 @@ "debug": "^4.3.7", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.0.7", + "file-entry-cache": "^10.0.8", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", @@ -25028,7 +25028,7 @@ "ignore": "^7.0.3", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.35.0", + "known-css-properties": "^0.36.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", "micromatch": "^4.0.8", @@ -25189,6 +25189,13 @@ "stylelint": "^16.0.2" } }, + "node_modules/stylelint-scss/node_modules/known-css-properties": { + "version": "0.35.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", + "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", + "dev": true, + "license": "MIT" + }, "node_modules/stylelint-scss/node_modules/mdn-data": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz", @@ -25290,9 +25297,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.3.tgz", - "integrity": "sha512-bAH5jbK/F3T3Jls4I0SO1hmPR0dKU0a7+SY6n1yzRtG54FLO8d6w/nxLFX2Nb7dBu6cCWXPaAME6cYqFUMmuCA==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", + "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", "dev": true, "license": "MIT", "engines": { @@ -25690,13 +25697,13 @@ "license": "MIT" }, "node_modules/synckit": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.3.tgz", - "integrity": "sha512-szhWDqNNI9etJUvbZ1/cx1StnZx8yMmFxme48SwR4dty4ioSY50KEZlpv0qAfgc1fpRzuh9hBXEzoCpJ779dLg==", + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", + "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.1", + "@pkgr/core": "^0.2.3", "tslib": "^2.8.1" }, "engines": { @@ -26848,9 +26855,9 @@ } }, "node_modules/webpack": { - "version": "5.99.5", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.5.tgz", - "integrity": "sha512-q+vHBa6H9qwBLUlHL4Y7L0L1/LlyBKZtS9FHNCQmtayxjI5RKC9yD8gpvLeqGv5lCQp1Re04yi0MF40pf30Pvg==", + "version": "5.99.6", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.6.tgz", + "integrity": "sha512-TJOLrJ6oeccsGWPl7ujCYuc0pIq2cNsuD6GZDma8i5o5Npvcco/z+NKvZSFsP0/x6SShVb0+X2JK/JHUjKY9dQ==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index d4436b8..521e957 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -47,6 +47,7 @@ import { } from "./useInputs"; import { SelectChangeEvent } from "@mui/material"; import { SaveTemporaryPostRequest } from "@likeminds.community/feed-js"; +import { DeleteTemporaryPostRequest } from "@likeminds.community/feed-js"; interface UseCreatePost { postText: string | null; @@ -312,6 +313,7 @@ export function useCreatePost(): UseCreatePost { const [tempReelThumbnail, setTempReelThumbnail] = useState([]); const [isAnonymousPost, setIsAnonymousPost] = useState(false); const [temporaryPost, setTemporaryPost] = useState(null); + // const [temporaryId, setTemporaryId] = useState(null); const [mediaList, setMediaList] = useState([]); const [selectedTopicIds, setSelectedTopicIds] = useState([]); const [preSelectedTopics, setPreSelectedTopics] = useState([]); @@ -760,9 +762,10 @@ export function useCreatePost(): UseCreatePost { attachment.type === AttachmentType.DOCUMENT || attachment.type === AttachmentType.REEL, ); - + let localTempId = null; if (hasMediaAttachments) { const tempId = `-${Date.now()}`; + localTempId = tempId; const tempPost = SaveTemporaryPostRequest.builder() .setTempPost({ post: { @@ -834,6 +837,16 @@ export function useCreatePost(): UseCreatePost { const call = await lmFeedclient?.addPost(addPostRequest); if (call?.success) { + console.log(localTempId); + if (hasMediaAttachments && localTempId) { + const deleteRequest = DeleteTemporaryPostRequest.builder() + .setTemporaryPostId(localTempId) // Use the same ID that was saved + .build(); + + // Delete the temporary post from IndexedDB + await lmFeedclient?.deleteTemporaryPost(deleteRequest); + } + lmfeedAnalyticsClient?.sendPostCreatedEvent(call?.data?.post); customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATED, From 31b0f1e6cbbf4804ae82c9d0fafa24b48c5efe16 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Fri, 25 Apr 2025 17:22:19 +0530 Subject: [PATCH 04/22] added successful uploading case --- core/src/components/LMFeedUploadBanner.tsx | 1 - core/src/hooks/useCreatePost.ts | 73 ---------------------- 2 files changed, 74 deletions(-) diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index 2753acc..fba6be5 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -135,7 +135,6 @@ const LMFeedUploadBanner = () => { >
Uploading post... -
hello this the original banner
+ {!uploadFailed ? ( + <> +
+ + Uploading post... + + + + ) : ( + <> + Upload failed + + + + )}
); }; -export default LMFeedUploadBanner; \ No newline at end of file +export default LMFeedUploadBanner; diff --git a/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx b/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx index 5d02593..3769006 100644 --- a/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx +++ b/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx @@ -61,4 +61,4 @@ const LMFeedDeleteDialogBox = ({ mode, onClose }: LMDeletePostDialogProps) => { ); }; -export default LMFeedDeleteDialogBox; +export default LMFeedDeleteDialogBox; \ No newline at end of file diff --git a/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx b/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx index 22e3bff..8d3d5c0 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx @@ -36,4 +36,4 @@ export const LMFeedTopicSelectedBlock = ({ ); } } -}; +}; \ No newline at end of file diff --git a/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx b/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx index ae94824..2a71e61 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx @@ -29,4 +29,4 @@ const LMFeedTopicSelectionTile: React.FC = memo( }, ); -export default LMFeedTopicSelectionTile; +export default LMFeedTopicSelectionTile; \ No newline at end of file diff --git a/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx b/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx index 03c76e4..af9f2f0 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx @@ -13,4 +13,4 @@ const LMFeedTopicsTile = ({ topic }: LMFeedTopicTileInterface) => { ); }; -export default LMFeedTopicsTile; +export default LMFeedTopicsTile; \ No newline at end of file diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index 1f7b58d..a121395 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -781,9 +781,10 @@ export function useCreatePost(): UseCreatePost { } } catch (error) { console.log(error); - // Dispatch failed event if not already dispatched + // Dispatch failed event with upload failure flag customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, + { isUploadFailure: true } ); } finally { setOpenPostCreationProgressBar!(false); @@ -963,6 +964,61 @@ export function useCreatePost(): UseCreatePost { }, [lmFeedclient, text]); useEffect(() => { + // Listen for retry upload event + customEventClient?.listen( + LMFeedCustomActionEvents.RETRY_POST_UPLOAD, + async (event: Event) => { + const customEvent = event as CustomEvent; + const post = customEvent.detail?.post; + if (post) { + // Reset states and start upload again + setTemporaryPost(post); + try { + setOpenPostCreationProgressBar!(true); + // Re-upload media attachments + for (const attachment of post.attachments) { + if ([1, 2, 3, 11].includes(attachment.type)) { + const file = attachment.metaData.file; + await HelperFunctionsClass.uploadMedia( + file, + currentUser?.sdkClientInfo.uuid || "" + ); + } + } + // If upload successful, create the post + const addPostRequest = AddPostRequest.builder() + .setAttachments(post.attachments) + .setText(post.text) + .setTopicIds(post.topics) + .setTempId(Date.now().toString()) + .setIsAnonymous(post.isAnonymous) + .build(); + + const call = await lmFeedclient?.addPost(addPostRequest); + if (call?.success) { + // Delete temporary post after successful creation + const deleteRequest = DeleteTemporaryPostRequest.builder() + .setTemporaryPostId(post.id) + .build(); + await lmFeedclient?.deleteTemporaryPost(deleteRequest); + + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATED + ); + } + } catch (error) { + console.error("Error during retry upload:", error); + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + { isUploadFailure: true } + ); + } finally { + setOpenPostCreationProgressBar!(false); + } + } + } + ); + customEventClient?.listen( LMFeedCustomActionEvents.OPEN_CREATE_POST_DIALOUGE, (event: Event) => { diff --git a/core/src/shared/constants/lmFeedCustomEventNames.ts b/core/src/shared/constants/lmFeedCustomEventNames.ts index 2c2a2a6..bec42bd 100644 --- a/core/src/shared/constants/lmFeedCustomEventNames.ts +++ b/core/src/shared/constants/lmFeedCustomEventNames.ts @@ -17,10 +17,11 @@ export enum LMFeedCustomActionEvents { PINNED_ON_DETAIL = "PINNED_ON_DETAIL", DELETE_POST_ON_DETAILS = "DELETE_POST_ON_DETAILS", TRIGGER_SET_USER = "TRIGGER_SET_USER", - HIDDEN_ON_DETAIL = "HIDDEN_ON_DETAI", + HIDDEN_ON_DETAIL = "HIDDEN_ON_DETAIL", UNHIDDEN_ON_DETAIL = "UNHIDDEN_ON_DETAIL", MODERATION_UPDATED = "MODERATION_UPDATED", CURRENT_USER_CM = "CURRENT_USER_CM", POST_CREATION_STARTED = "POST_CREATION_STARTED", POST_CREATION_FAILED = "POST_CREATION_FAILED", + RETRY_POST_UPLOAD = "RETRY_POST_UPLOAD", } diff --git a/core/src/shared/types/likeminds-feed.d.ts b/core/src/shared/types/likeminds-feed.d.ts new file mode 100644 index 0000000..e69de29 From 78baf24c4707115820b788906b515c3be1af6154 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Sat, 26 Apr 2025 18:40:19 +0530 Subject: [PATCH 07/22] added styles and removed logs --- core/src/assets/scss/_components.scss | 3 + .../components/_lm-feed-upload-banner.scss | 97 +++++++++++++++++++ core/src/components/LMFeedUploadBanner.tsx | 77 +-------------- core/src/hooks/useCreatePost.ts | 1 - 4 files changed, 105 insertions(+), 73 deletions(-) create mode 100644 core/src/assets/scss/components/_lm-feed-upload-banner.scss diff --git a/core/src/assets/scss/_components.scss b/core/src/assets/scss/_components.scss index f253e5c..aaabb17 100644 --- a/core/src/assets/scss/_components.scss +++ b/core/src/assets/scss/_components.scss @@ -19,6 +19,9 @@ padding: 1rem; } +// Import upload banner component +@import "components/lm-feed-upload-banner"; + .lm-card-title { font-weight: bold; margin-bottom: 0.5rem; diff --git a/core/src/assets/scss/components/_lm-feed-upload-banner.scss b/core/src/assets/scss/components/_lm-feed-upload-banner.scss new file mode 100644 index 0000000..96890a7 --- /dev/null +++ b/core/src/assets/scss/components/_lm-feed-upload-banner.scss @@ -0,0 +1,97 @@ +.lm-feed-upload-banner { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 1000; + background: linear-gradient(to right, #4a90e2, #357abd); + padding: 16px; + display: flex; + align-items: center; + justify-content: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); + transition: all 0.3s ease; + + &__container { + max-width: 1200px; + width: 100%; + margin: 0 auto; + display: flex; + align-items: center; + justify-content: center; + gap: 16px; + } + + &__text { + color: white; + font-size: 16px; + font-weight: 500; + margin-right: 16px; + } + + &__retry-btn, + &__cancel-btn { + padding: 8px 16px; + border: none; + border-radius: 6px; + font-size: 14px; + font-weight: 500; + cursor: pointer; + transition: all 0.2s ease; + + &:hover { + transform: translateY(-1px); + } + + &:active { + transform: translateY(0); + } + } + + &__retry-btn { + background-color: white; + color: #4a90e2; + margin-right: 12px; + + &:hover { + background-color: #f5f5f5; + } + } + + &__cancel-btn { + background-color: rgba(255, 255, 255, 0.15); + color: white; + backdrop-filter: blur(8px); + + &:hover { + background-color: rgba(255, 255, 255, 0.25); + } + } + + // Error state + &--error { + background: linear-gradient(to right, #e74c3c, #c0392b); + + .lm-feed-upload-banner__retry-btn { + color: #e74c3c; + } + } + + // Loading animation for the uploading state + &__loading { + display: inline-block; + width: 20px; + height: 20px; + margin-right: 12px; + border: 2px solid rgba(255, 255, 255, 0.3); + border-radius: 50%; + border-top-color: white; + animation: spin 1s linear infinite; + } +} + +@keyframes spin { + to { + transform: rotate(360deg); + } +} diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index f98d9a1..a0df275 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -5,7 +5,7 @@ import LMFeedUserProviderContext from "../contexts/LMFeedUserProviderContext"; import { DeleteTemporaryPostRequest, AddPostRequest, AttachmentType } from "@likeminds.community/feed-js"; import { HelperFunctionsClass } from "../shared/helper"; // import deleteTemporaryPost from "@likeminds.community/feed-js"; -const LMFeedUploadBanner = () => { +const LMFeedUploadBanner: React.FC = () => { const [isVisible, setIsVisible] = useState(false); const [tempPostId, setTempPostId] = useState(null); const [uploadFailed, setUploadFailed] = useState(false); @@ -41,19 +41,16 @@ const LMFeedUploadBanner = () => { // Handle new post creation events const handlePostCreationStarted = (event: Event) => { const customEvent = event as CustomEvent; - console.log("Post creation started", customEvent.detail); setTempPostId(customEvent.detail.tempId); setIsVisible(true); }; const handlePostCreated = () => { - console.log("Post created"); setIsVisible(false); setTempPostId(null); }; const handlePostCreationFailed = () => { - console.log("Post creation failed"); setUploadFailed(true); }; @@ -73,7 +70,6 @@ const LMFeedUploadBanner = () => { ); return () => { - console.log("LMFeedUploadBanner unmounting"); customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_STARTED); customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATED); customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_FAILED); @@ -179,14 +175,10 @@ const LMFeedUploadBanner = () => { }; const handleCancel = async () => { - console.log("entry mil gayi ji"); - console.log("tempPostId:", tempPostId); if (tempPostId && lmFeedclient) { try { - console.log("Cancelling upload for post:", tempPostId); // Cancel the AWS upload first HelperFunctionsClass.cancelUpload(); - console.log("aws upload cancel"); // Then delete the temporary post const request = DeleteTemporaryPostRequest.builder() @@ -195,8 +187,6 @@ const LMFeedUploadBanner = () => { // Delete from local storage await lmFeedclient?.deleteTemporaryPost(request); - console.log("hello", request.temporaryPostId); - console.log("deleted temporary post from local storage"); // Clear the temporary post from state setTempPostId(null); @@ -206,7 +196,6 @@ const LMFeedUploadBanner = () => { customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, ); - console.log("event cancelled"); } catch (error) { console.error("Error during cancellation:", error); // Even if there's an error, try to hide the banner and clear state @@ -221,57 +210,18 @@ const LMFeedUploadBanner = () => { } }; - console.log( - "LMFeedUploadBanner rendering, isVisible:", - isVisible, - "tempPostId:", - tempPostId, - ); - if (!isVisible) return null; return ( -
-
+
+
{!uploadFailed ? ( <> -
- - Uploading post... - +
+ Uploading... @@ -282,29 +232,12 @@ const LMFeedUploadBanner = () => { diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index a121395..b3d248f 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -764,7 +764,6 @@ export function useCreatePost(): UseCreatePost { const call = await lmFeedclient?.addPost(addPostRequest); if (call?.success) { - console.log(localTempId); if (hasMediaAttachments && localTempId) { const deleteRequest = DeleteTemporaryPostRequest.builder() .setTemporaryPostId(localTempId) // Use the same ID that was saved From ccc1afd982eb032e9b9145dc93b3a543c3bf2d41 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Sun, 27 Apr 2025 12:52:37 +0530 Subject: [PATCH 08/22] changed package.json --- core/package.json | 19 +- core/src/App.css | 185 ------------------ core/src/App.tsx | 71 ------- core/src/DrawerList.tsx | 135 ------------- core/src/SideNavbar.tsx | 59 ------ .../components/LMFeedDataContextProvider.tsx | 2 +- core/src/components/LMPostPoll.tsx | 2 +- .../LMQNAFeedDataContextProvider.tsx | 2 +- core/src/hooks/usePostPoll.ts | 2 +- core/src/{old_index.ts => index.ts} | 0 core/src/index.tsx | 5 - core/src/shared/utils.ts | 2 +- 12 files changed, 21 insertions(+), 463 deletions(-) delete mode 100644 core/src/App.css delete mode 100644 core/src/App.tsx delete mode 100644 core/src/DrawerList.tsx delete mode 100644 core/src/SideNavbar.tsx rename core/src/{old_index.ts => index.ts} (100%) delete mode 100644 core/src/index.tsx diff --git a/core/package.json b/core/package.json index c3b41ab..96ecd7f 100644 --- a/core/package.json +++ b/core/package.json @@ -1,6 +1,6 @@ { "name": "@likeminds.community/likeminds-feed-reactjs", - "version": "1.11.1", + "version": "1.12.0", "scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", @@ -25,7 +25,7 @@ "@aws-sdk/credential-providers": "3.556.0", "@emotion/react": "11.11.3", "@emotion/styled": "11.11.0", - "@likeminds.community/feed-js": "file:../../../dataFeed/likeminds-feed-js-data/likeminds.community-feed-js-1.19.0.tgz", + "@likeminds.community/feed-js": "1.19.0", "@mui/material": "5.15.10", "@mui/x-date-pickers": "7.22.2", "@testing-library/jest-dom": "5.14.1", @@ -114,5 +114,18 @@ "peerDependencies": { "react": "^18.3.1", "react-dom": "^18.3.1" + }, + "main": "dist/index.js", + "module": "dist/index.js", + "files": [ + "dist" + ], + "types": "dist/index.d.ts", + "type": "module", + "exports": { + ".": { + "import": "./dist/index.js", + "require": "./dist/index.umd.cjs" + } } -} +} \ No newline at end of file diff --git a/core/src/App.css b/core/src/App.css deleted file mode 100644 index b920804..0000000 --- a/core/src/App.css +++ /dev/null @@ -1,185 +0,0 @@ -.custom-cta-link-input { - padding: 8px; - width: 100%; - font-size: 16px; - font-family: "Roboto"; - margin-bottom: 16px; -} - -.lm-create-dialog-video-icon-container { - cursor: pointer; -} - -.create-post-initiate-view-button { - background-color: var(--lm-feed-primary-color); - color: white; - outline: none; - padding: 8px 16px; - border: none; - font-size: 16px; - margin: 12px 18px; -} - -.custom-cta-action { - height: 40px; - width: 40px; - font-family: Roboto; - font-size: 16px; - border: none; - outline: none; - position: absolute; - bottom: 16px; - right: 16px; - background-color: var(--lm-feed-primary-color); - border-radius: 50%; - display: flex; - justify-content: center; - align-items: center; - cursor: pointer; -} - -.lm-wrapper { - display: flex; -} - -.relative { - position: relative; -} - -.lm-sidenav-wrapper { - width: 100%; - max-width: 92px; - position: fixed; - height: 100%; - background-color: #fff; - display: flex; - flex-direction: column; - justify-content: space-between; -} - -.lm-sidenav { - height: auto; - max-width: 92px; - width: 100%; - background-color: #fff; - overflow: hidden; - border: none; - position: sticky; - top: 0; - margin-top: 70px; -} - -.lm-sidenav-icon-wrapper { - height: 64px; - width: 100%; - cursor: pointer; - margin: 20px 0; - position: relative; - margin-right: auto; - margin-left: auto; -} - -.lm-nav-selected-icons { - height: 64px; - width: 64px; - margin-left: auto; - margin-right: auto; - display: flex; - justify-content: center; - align-items: center; -} - -.lm-nav-selected-icons::before { - content: ""; - position: absolute; - top: 0; - left: 0; - width: 4px; - height: 100%; - background-color: var(--lm-feed-primary-color); - border-radius: 20px; -} - -.moderation-icon { - margin-bottom: 100px; -} - -.lm-nav-icons { - height: 64px; - width: 64px; - margin-left: auto; - margin-right: auto; - display: flex; - justify-content: center; - align-items: center; -} - -.lm-selected-background { - background-color: var(--lm-feed-bg-color); - border-radius: 20px; -} - -.lm-header-toggle-wrapper { - display: flex; - gap: 16px; -} - -.toggle-sidebar-menu-header { - display: flex; - justify-content: space-between; - width: 100%; -} - -.toggle-sidebar-menu-heading { - color: #333333; - font-weight: 700 !important; - font-size: 13px; -} - -.lm-sidebar-headings { - color: #9B9B9B; - font-size: 14px; - font-weight: 500; -} - -.lm-sidebar-headings-selected { - color: var(--lm-feed-primary-color); -} - -.lm-mobile-view-toggle-bar { - display: none; - z-index: 10; - margin-top: 20px; - margin-left: 10px; - position: fixed; -} - -/* Mobile Devices */ -@media only screen and (max-width: 480px) { - .lm-sidenav { - display: none; - } - .moderation-mobile-tab-wrapper, .lm-mobile-view-toggle-bar { - display: block; - } -} - -/* Tablets */ -@media only screen and (max-width: 768px) { - .lm-sidenav { - display: none; - } - .moderation-mobile-tab-wrapper, .lm-mobile-view-toggle-bar { - display: block; - } -} - -/* Small screens, laptops */ -@media only screen and (max-width: 1024px) { - .lm-sidenav { - display: none; - } - .lm-mobile-view-toggle-bar { - display: block; - } -} diff --git a/core/src/App.tsx b/core/src/App.tsx deleted file mode 100644 index d44c9fd..0000000 --- a/core/src/App.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import { useState } from "react"; -import { - LMSocialFeed, - LMFeedNotificationHeader, - LMFeedUniversalFeed, - LMFeedModerationScreen, - LMFeedCustomEvents, - initiateFeedClient, - LMCoreCallbacks, -} from "./old_index"; - -import SideNavbar from "./SideNavbar"; -import DrawerList from "./DrawerList"; -import "./App.css"; -// import WarningIcon from "./warning-circle-dashboard.svg"; - -function App() { - const [userDetails] = useState<{ - uuid?: string; - username?: string; - isGuest?: boolean; - apiKey?: string; - }>({ - uuid: "1e5af4c4-b4a6-4f88-a71d-b82589e65003", - username: "yash-test1", - isGuest: false, // Turn this flag to true in case you have a guest user - apiKey: "d3e431f9-8c92-4c57-b226-a413a5d8b6eb", - // apiKey: "500f73a0-0be6-40d2-a705-78c31861323c", - }); - - // Initiated LMFeedClient - const lmFeedClient = initiateFeedClient(); - - // Initiated LMFeedCustomEvents - const customEventClient = new LMFeedCustomEvents(); - const lmCoreCallbacks = new LMCoreCallbacks( - () => {}, - () => { - return { - accessToken: "", - refreshToken: "", - }; - }, - ); - - - - const isModerationRoute = window.location.pathname === "/moderation"; - return ( - <> - - -
- - - {isModerationRoute ? ( - - ) : ( - - )} - -
- - ); -} -export default App; diff --git a/core/src/DrawerList.tsx b/core/src/DrawerList.tsx deleted file mode 100644 index 0b996c5..0000000 --- a/core/src/DrawerList.tsx +++ /dev/null @@ -1,135 +0,0 @@ -import { useState } from "react"; -import Box from "@mui/material/Box"; -import Drawer from "@mui/material/Drawer"; -import List from "@mui/material/List"; -import ListItem from "@mui/material/ListItem"; -import ListItemButton from "@mui/material/ListItemButton"; -import ListItemIcon from "@mui/material/ListItemIcon"; -import ListItemText from "@mui/material/ListItemText"; - -import toggleIcon from "./assets/images/toggle-icon.svg"; -import HomeIcon from "./assets/images/bottombar-home-icon.svg"; -import SelectedHomeIcon from "./assets/images/sidenav-selected-home.svg"; -import ModerationIcon from "./assets/images/sidenav-unselected-moderation.svg"; -import SelectedModerationIcon from "./assets/images/bottom-bar-moderation-icon.svg"; -import CancelIcon from "./assets/images/cancel-model-icon.svg"; - -const DrawerList = () => { - const [open, setOpen] = useState(false); - const user = JSON.parse(localStorage.getItem("LOCAL_USER") || "{}"); - const isCM = user?.state === 1; - const currentScreen = window.location.pathname.includes("moderation"); - const toggleDrawer = (newOpen: boolean) => () => { - setOpen(newOpen); - }; - - const DrawerList = ( - - - - - - - close-icon - - - - - - { - const url = new URL(window.location.href); - if (url.pathname.endsWith("/moderation")) { - url.pathname = url.pathname.replace(/\/moderation$/, ""); - } - window.location.assign(url.toString()); - }} - > - - {!currentScreen ? ( - post approval - ) : ( - post approval - )} - - - - - {isCM ? ( - - { - const url = new URL(window.location.href); - if (!url.pathname.endsWith("/moderation")) { - url.pathname = - url.pathname.replace(/\/$/, "") + "/moderation"; - } - window.location.assign(url.toString()); - }} - > - - {currentScreen ? ( - post approval - ) : ( - post approval - )} - - - - - ) : null} - - - ); - - return ( -
- post approval - - {DrawerList} - -
- ); -}; - -export default DrawerList; diff --git a/core/src/SideNavbar.tsx b/core/src/SideNavbar.tsx deleted file mode 100644 index 1dbdbe0..0000000 --- a/core/src/SideNavbar.tsx +++ /dev/null @@ -1,59 +0,0 @@ -import HomeIcon from "./assets/images/home-icon.svg"; -import ModerationIcon from "./assets/images/moderation-icon.svg"; - -const SideNavbar = () => { - const user = JSON.parse(localStorage.getItem("LOCAL_USER") || "{}"); - const isCM = user?.state === 1; - const isModerationScreen = window.location.pathname.includes("moderation"); - return ( -
-
-
-
{ - const url = new URL(window.location.href); - if (url.pathname.endsWith("/moderation")) { - url.pathname = url.pathname.replace(/\/moderation$/, ""); - } - window.location.assign(url.toString()); - }} - > -
- home -
-
-
- {isCM ? ( -
{ - const url = new URL(window.location.href); - if (!url.pathname.endsWith("/moderation")) { - url.pathname = url.pathname.replace(/\/$/, "") + "/moderation"; - } - window.location.assign(url.toString()); - }} - > -
- moderation -
-
- ) : null} -
-
- ); -}; - -export default SideNavbar; diff --git a/core/src/components/LMFeedDataContextProvider.tsx b/core/src/components/LMFeedDataContextProvider.tsx index 3b9dd6a..f04b96f 100644 --- a/core/src/components/LMFeedDataContextProvider.tsx +++ b/core/src/components/LMFeedDataContextProvider.tsx @@ -8,7 +8,7 @@ import { LMFeedModerationScreen } from "./LMFeedModerationScreen"; import LMFeedDetails from "./LMFeedDetails"; import { returnPostId } from "../shared/utils"; -import { CustomAgentProviderContext } from "../old_index"; +import { CustomAgentProviderContext } from ".."; import { LMFeedCurrentUserState } from "../shared/enums/lmCurrentUserState"; export interface LMFeedListDataContextProviderInterface { diff --git a/core/src/components/LMPostPoll.tsx b/core/src/components/LMPostPoll.tsx index 74122cd..476c828 100644 --- a/core/src/components/LMPostPoll.tsx +++ b/core/src/components/LMPostPoll.tsx @@ -1,4 +1,4 @@ -import { FeedPostContext } from "../old_index"; +import { FeedPostContext } from ".."; import { useContext, useMemo } from "react"; import { getTimeLeftInPoll, diff --git a/core/src/components/LMQNAFeedDataContextProvider.tsx b/core/src/components/LMQNAFeedDataContextProvider.tsx index bbb23f9..dfbe7e7 100644 --- a/core/src/components/LMQNAFeedDataContextProvider.tsx +++ b/core/src/components/LMQNAFeedDataContextProvider.tsx @@ -7,7 +7,7 @@ import { returnPostId } from "../shared/utils"; import LMQNAFeedDetails from "./LMQNAFeedDetails"; import LMQNAFeedUniversalFeed from "./LMQNAFeedUniversalFeed"; import { LMFeedModerationScreen } from "./LMFeedModerationScreen"; -import { CustomAgentProviderContext } from "../old_index"; +import { CustomAgentProviderContext } from ".."; import { LMFeedCurrentUserState } from "../shared/enums/lmCurrentUserState"; export interface LMQNAFeedDataContextProviderInterface { diff --git a/core/src/hooks/usePostPoll.ts b/core/src/hooks/usePostPoll.ts index a228ee5..fd3ba4e 100644 --- a/core/src/hooks/usePostPoll.ts +++ b/core/src/hooks/usePostPoll.ts @@ -17,7 +17,7 @@ import { useState, } from "react"; import LMFeedGlobalClientProviderContext from "../contexts/LMFeedGlobalClientProviderContext"; -import { FeedPostContext } from "../old_index"; +import { FeedPostContext } from ".."; import { User } from "../shared/types/models/member"; import { CustomAgentProviderContext } from "../contexts/LMFeedCustomAgentProviderContext"; import { WidgetResponse } from "../shared/utils"; diff --git a/core/src/old_index.ts b/core/src/index.ts similarity index 100% rename from core/src/old_index.ts rename to core/src/index.ts diff --git a/core/src/index.tsx b/core/src/index.tsx deleted file mode 100644 index ed38183..0000000 --- a/core/src/index.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import React from "react"; -import ReactDOM from "react-dom/client"; -import App from "./App.tsx"; - -ReactDOM.createRoot(document.getElementById("root")!).render(); diff --git a/core/src/shared/utils.ts b/core/src/shared/utils.ts index 2ce8308..c166418 100644 --- a/core/src/shared/utils.ts +++ b/core/src/shared/utils.ts @@ -6,7 +6,7 @@ import { Pluralize } from "./variables"; import { TokenValues } from "./enums/tokens"; import { WordAction } from "./enums/wordAction"; -import { LMDisplayMessages } from "../old_index"; +import { LMDisplayMessages } from ".."; import { PollMultipleSelectState, PollType } from "./enums/ImPollType"; import { GetCommunityConfigurationsResponse } from "./types/api-responses/getComunityConfigurations"; From c9b5611b092bbfce739234ff65102cd58c5355c8 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Mon, 28 Apr 2025 17:14:18 +0530 Subject: [PATCH 09/22] made all the changes mentioned --- core/package.json | 2 +- .../components/_lm-feed-upload-banner.scss | 51 ++--- core/src/components/LMFeedUploadBanner.tsx | 215 +----------------- .../lmDialogs/LMFeedDeleteDialogBox.tsx | 1 + .../lmTopicFeed/LMFeedTopicSelectedBlock.tsx | 1 + .../lmTopicFeed/LMFeedTopicSelectionTile.tsx | 1 + .../lmTopicFeed/LMFeedTopicsTile.tsx | 1 + core/src/hooks/LMFeedRetryPost.ts | 206 +++++++++++++++++ core/src/hooks/useCreatePost.ts | 1 - 9 files changed, 241 insertions(+), 238 deletions(-) create mode 100644 core/src/hooks/LMFeedRetryPost.ts diff --git a/core/package.json b/core/package.json index 96ecd7f..e394e9c 100644 --- a/core/package.json +++ b/core/package.json @@ -25,7 +25,7 @@ "@aws-sdk/credential-providers": "3.556.0", "@emotion/react": "11.11.3", "@emotion/styled": "11.11.0", - "@likeminds.community/feed-js": "1.19.0", + "@likeminds.community/feed-js": "1.20.0", "@mui/material": "5.15.10", "@mui/x-date-pickers": "7.22.2", "@testing-library/jest-dom": "5.14.1", diff --git a/core/src/assets/scss/components/_lm-feed-upload-banner.scss b/core/src/assets/scss/components/_lm-feed-upload-banner.scss index 96890a7..146b07c 100644 --- a/core/src/assets/scss/components/_lm-feed-upload-banner.scss +++ b/core/src/assets/scss/components/_lm-feed-upload-banner.scss @@ -4,43 +4,42 @@ left: 0; right: 0; z-index: 1000; - background: linear-gradient(to right, #4a90e2, #357abd); - padding: 16px; + background: var(--lm-feed-info-color); + padding: pxToRem(16); display: flex; align-items: center; justify-content: center; - box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15); transition: all 0.3s ease; &__container { - max-width: 1200px; + max-width: pxToRem(1200); width: 100%; margin: 0 auto; display: flex; align-items: center; justify-content: center; - gap: 16px; + gap: pxToRem(16); } &__text { - color: white; - font-size: 16px; + color: var(--lm-feed-light-color); + font-size: pxToRem(16); font-weight: 500; - margin-right: 16px; + margin-right: pxToRem(16); } &__retry-btn, &__cancel-btn { - padding: 8px 16px; + padding: pxToRem(8) pxToRem(16); border: none; - border-radius: 6px; - font-size: 14px; + border-radius: pxToRem(6); + font-size: pxToRem(14); font-weight: 500; cursor: pointer; transition: all 0.2s ease; &:hover { - transform: translateY(-1px); + transform: translateY(pxToRem(-1)); } &:active { @@ -49,43 +48,43 @@ } &__retry-btn { - background-color: white; - color: #4a90e2; - margin-right: 12px; + background-color: var(--lm-feed-light-color); + color: var(--lm-feed-primary-color); + margin-right: pxToRem(12); &:hover { - background-color: #f5f5f5; + background-color: var(--lm-feed-light-color); } } &__cancel-btn { - background-color: rgba(255, 255, 255, 0.15); - color: white; - backdrop-filter: blur(8px); + background-color: var(--lm-feed-danger-color); + color: var(--lm-feed-light-color); + backdrop-filter: blur(pxToRem(8)); &:hover { - background-color: rgba(255, 255, 255, 0.25); + background-color: var(--lm-feed-dark-color); } } // Error state &--error { - background: linear-gradient(to right, #e74c3c, #c0392b); + background: var(--lm-feed-danger-color); .lm-feed-upload-banner__retry-btn { - color: #e74c3c; + color: var(--lm-feed-light-color); } } // Loading animation for the uploading state &__loading { display: inline-block; - width: 20px; - height: 20px; + width: pxToRem(20); + height: pxToRem(20); margin-right: 12px; - border: 2px solid rgba(255, 255, 255, 0.3); + border: pxToRem(2) solid var(--lm-feed-dark-color); border-radius: 50%; - border-top-color: white; + border-top-color: var(--lm-feed-light-color); animation: spin 1s linear infinite; } } diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index a0df275..2820972 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -1,214 +1,8 @@ -import React, { useContext, useEffect, useState } from "react"; -import { LMFeedCustomActionEvents } from "../shared/constants/lmFeedCustomEventNames"; -import LMFeedGlobalClientProviderContext from "../contexts/LMFeedGlobalClientProviderContext"; -import LMFeedUserProviderContext from "../contexts/LMFeedUserProviderContext"; -import { DeleteTemporaryPostRequest, AddPostRequest, AttachmentType } from "@likeminds.community/feed-js"; -import { HelperFunctionsClass } from "../shared/helper"; -// import deleteTemporaryPost from "@likeminds.community/feed-js"; -const LMFeedUploadBanner: React.FC = () => { - const [isVisible, setIsVisible] = useState(false); - const [tempPostId, setTempPostId] = useState(null); - const [uploadFailed, setUploadFailed] = useState(false); - const { customEventClient, lmFeedclient } = useContext( - LMFeedGlobalClientProviderContext - ); - const { currentUser } = useContext(LMFeedUserProviderContext); - // const { temporaryPost } = useContext(LMFeedCreatePostContext); - - useEffect(() => { - // Check for any existing temporary posts when component mounts - const checkTemporaryPost = async () => { - try { - const response = await lmFeedclient?.getTemporaryPost(); - if (response?.data?.tempPost) { - const tempId = response.data.tempPost.post.id; - setTempPostId(tempId); - setIsVisible(true); - setUploadFailed(true); - // Dispatch event to disable create post button - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_STARTED, - { tempId } - ); - } - } catch (error) { - console.error('Error checking temporary post:', error); - } - }; - - checkTemporaryPost(); - - // Handle new post creation events - const handlePostCreationStarted = (event: Event) => { - const customEvent = event as CustomEvent; - setTempPostId(customEvent.detail.tempId); - setIsVisible(true); - }; - - const handlePostCreated = () => { - setIsVisible(false); - setTempPostId(null); - }; - - const handlePostCreationFailed = () => { - setUploadFailed(true); - }; - - customEventClient?.listen( - LMFeedCustomActionEvents.POST_CREATION_STARTED, - handlePostCreationStarted, - ); - - customEventClient?.listen( - LMFeedCustomActionEvents.POST_CREATED, - handlePostCreated, - ); - - customEventClient?.listen( - LMFeedCustomActionEvents.POST_CREATION_FAILED, - handlePostCreationFailed, - ); - - return () => { - customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_STARTED); - customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATED); - customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_FAILED); - }; - }, [customEventClient]); - - const handleRetry = async () => { - if (tempPostId && lmFeedclient) { - try { - // Get the temporary post - const post = await lmFeedclient.getTemporaryPost(); - const tempPost = post?.data?.tempPost?.post; - - if (tempPost) { - setUploadFailed(false); - - // Show banner when we start AWS upload retry - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_STARTED, - { tempId: tempPost.id } - ); +import React from "react"; +import { useLMFeedRetryPost } from "../hooks/LMFeedRetryPost"; - try { - // Upload media to AWS S3 - const mediaList = tempPost.attachments || []; - if (!currentUser?.sdkClientInfo?.uuid) { - throw new Error("User ID not found"); - } - for (const attachment of mediaList) { - if (attachment.type === AttachmentType.IMAGE || - attachment.type === AttachmentType.VIDEO || - attachment.type === AttachmentType.DOCUMENT) { - if (!attachment.metaData?.url) { - console.warn('No URL found for attachment:', attachment); - continue; - } - try { - const response = await fetch(attachment.metaData.url); - const blob = await response.blob(); - const file = new File( - [blob], - attachment.metaData.name || 'file', - { type: response.headers.get('content-type') || 'application/octet-stream' } - ); - await HelperFunctionsClass.uploadMedia( - file, - currentUser.sdkClientInfo.uuid - ); - } catch (error) { - console.error('Failed to fetch file from URL:', error); - continue; - } - } else { - console.warn('Unsupported attachment type:', attachment.type); - continue; - } - } - - // After successful AWS upload, call addPost - const addPostRequest = AddPostRequest.builder() - .setAttachments(tempPost.attachments || []) - .setText(tempPost.text || "") - .setTopicIds(tempPost.topics || []) - .setTempId(Date.now().toString()) - .setIsAnonymous(tempPost.isAnonymous || false); - - if (tempPost.heading) { - addPostRequest.setHeading(tempPost.heading); - } - - const addPostResponse = await lmFeedclient.addPost(addPostRequest.build()); - - if (addPostResponse?.success) { - // Delete temporary post after successful creation - const deleteRequest = DeleteTemporaryPostRequest.builder() - .setTemporaryPostId(tempPostId) - .build(); - - await lmFeedclient.deleteTemporaryPost(deleteRequest); - - // Dispatch success event - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATED, - {} - ); - } - } catch (error) { - console.error("Error in upload/post creation:", error); - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_FAILED, - {} - ); - } - } - } catch (error) { - console.error("Error getting temporary post:", error); - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_FAILED, - {} - ); - } - } - }; - - const handleCancel = async () => { - if (tempPostId && lmFeedclient) { - try { - // Cancel the AWS upload first - HelperFunctionsClass.cancelUpload(); - - // Then delete the temporary post - const request = DeleteTemporaryPostRequest.builder() - .setTemporaryPostId(tempPostId) - .build(); - - // Delete from local storage - await lmFeedclient?.deleteTemporaryPost(request); - - // Clear the temporary post from state - setTempPostId(null); - setIsVisible(false); - - // Dispatch the failed event to hide the banner - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_FAILED, - ); - } catch (error) { - console.error("Error during cancellation:", error); - // Even if there's an error, try to hide the banner and clear state - setTempPostId(null); - setIsVisible(false); - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_FAILED, - ); - } - } else { - console.log("No temporary post ID or client available"); - } - }; +const LMFeedUploadBanner: React.FC = () => { + const { isVisible, uploadFailed, handleRetry, handleCancel } = useLMFeedRetryPost(); if (!isVisible) return null; @@ -248,4 +42,5 @@ const LMFeedUploadBanner: React.FC = () => { ); }; + export default LMFeedUploadBanner; diff --git a/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx b/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx index 3769006..dda429f 100644 --- a/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx +++ b/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx @@ -61,4 +61,5 @@ const LMFeedDeleteDialogBox = ({ mode, onClose }: LMDeletePostDialogProps) => { ); }; + export default LMFeedDeleteDialogBox; \ No newline at end of file diff --git a/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx b/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx index 8d3d5c0..1a0c865 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicSelectedBlock.tsx @@ -36,4 +36,5 @@ export const LMFeedTopicSelectedBlock = ({ ); } } + }; \ No newline at end of file diff --git a/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx b/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx index 2a71e61..ad2289a 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx @@ -29,4 +29,5 @@ const LMFeedTopicSelectionTile: React.FC = memo( }, ); + export default LMFeedTopicSelectionTile; \ No newline at end of file diff --git a/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx b/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx index af9f2f0..264a5a6 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx @@ -13,4 +13,5 @@ const LMFeedTopicsTile = ({ topic }: LMFeedTopicTileInterface) => { ); }; + export default LMFeedTopicsTile; \ No newline at end of file diff --git a/core/src/hooks/LMFeedRetryPost.ts b/core/src/hooks/LMFeedRetryPost.ts new file mode 100644 index 0000000..66778cf --- /dev/null +++ b/core/src/hooks/LMFeedRetryPost.ts @@ -0,0 +1,206 @@ +import { useContext, useEffect, useState } from 'react'; +import { LMFeedCustomActionEvents } from '../shared/constants/lmFeedCustomEventNames'; +import LMFeedGlobalClientProviderContext from '../contexts/LMFeedGlobalClientProviderContext'; +import LMFeedUserProviderContext from '../contexts/LMFeedUserProviderContext'; +import { DeleteTemporaryPostRequest, AddPostRequest, AttachmentType } from '@likeminds.community/feed-js'; +import { HelperFunctionsClass } from '../shared/helper'; + +export interface LMFeedRetryPostHook { + isVisible: boolean; + tempPostId: string | null; + uploadFailed: boolean; + handleRetry: () => Promise; + handleCancel: () => Promise; +} + +export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { + const [isVisible, setIsVisible] = useState(false); + const [tempPostId, setTempPostId] = useState(null); + const [uploadFailed, setUploadFailed] = useState(false); + + const { customEventClient, lmFeedclient } = useContext(LMFeedGlobalClientProviderContext); + const { currentUser } = useContext(LMFeedUserProviderContext); + + useEffect(() => { + const checkTemporaryPost = async () => { + try { + const response = await lmFeedclient?.getTemporaryPost(); + if (response?.data?.tempPost) { + const tempId = response.data.tempPost.post.id; + setTempPostId(tempId); + setIsVisible(true); + setUploadFailed(true); + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_STARTED, + { tempId } + ); + } + } catch (error) { + console.error('Error checking temporary post:', error); + } + }; + + checkTemporaryPost(); + + const handlePostCreationStarted = (event: Event) => { + const customEvent = event as CustomEvent; + setTempPostId(customEvent.detail.tempId); + setIsVisible(true); + }; + + const handlePostCreated = () => { + setIsVisible(false); + setTempPostId(null); + }; + + const handlePostCreationFailed = () => { + setUploadFailed(true); + }; + + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATION_STARTED, + handlePostCreationStarted, + ); + + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATED, + handlePostCreated, + ); + + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + handlePostCreationFailed, + ); + + return () => { + customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_STARTED); + customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATED); + customEventClient?.remove(LMFeedCustomActionEvents.POST_CREATION_FAILED); + }; + }, [customEventClient]); + + const handleRetry = async () => { + if (tempPostId && lmFeedclient) { + try { + const post = await lmFeedclient.getTemporaryPost(); + const tempPost = post?.data?.tempPost?.post; + + if (tempPost) { + setUploadFailed(false); + + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_STARTED, + { tempId: tempPost.id } + ); + + try { + const mediaList = tempPost.attachments || []; + if (!currentUser?.sdkClientInfo?.uuid) { + throw new Error("User ID not found"); + } + for (const attachment of mediaList) { + if (attachment.type === AttachmentType.IMAGE || + attachment.type === AttachmentType.VIDEO || + attachment.type === AttachmentType.DOCUMENT) { + if (!attachment.metaData?.url) { + console.warn('No URL found for attachment:', attachment); + continue; + } + try { + const response = await fetch(attachment.metaData.url); + const blob = await response.blob(); + const file = new File( + [blob], + attachment.metaData.name || 'file', + { type: response.headers.get('content-type') || 'application/octet-stream' } + ); + await HelperFunctionsClass.uploadMedia( + file, + currentUser.sdkClientInfo.uuid + ); + } catch (error) { + console.error('Failed to fetch file from URL:', error); + continue; + } + } else { + console.warn('Unsupported attachment type:', attachment.type); + continue; + } + } + + const addPostRequest = AddPostRequest.builder() + .setAttachments(tempPost.attachments || []) + .setText(tempPost.text || "") + .setTopicIds(tempPost.topics || []) + .setTempId(Date.now().toString()) + .setIsAnonymous(tempPost.isAnonymous || false); + + if (tempPost.heading) { + addPostRequest.setHeading(tempPost.heading); + } + + const addPostResponse = await lmFeedclient.addPost(addPostRequest.build()); + + if (addPostResponse?.success) { + const deleteRequest = DeleteTemporaryPostRequest.builder() + .setTemporaryPostId(tempPostId) + .build(); + + await lmFeedclient.deleteTemporaryPost(deleteRequest); + + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATED, + {} + ); + } + } catch (error) { + console.error("Error in upload/post creation:", error); + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + {} + ); + } + } + } catch (error) { + console.error("Error getting temporary post:", error); + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + {} + ); + } + } + }; + + const handleCancel = async () => { + if (tempPostId && lmFeedclient) { + try { + HelperFunctionsClass.cancelUpload(); + + const request = DeleteTemporaryPostRequest.builder() + .setTemporaryPostId(tempPostId) + .build(); + + await lmFeedclient?.deleteTemporaryPost(request); + + setTempPostId(null); + setIsVisible(false); + + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + ); + } catch (error) { + console.error("Error during cancellation:", error); + setTempPostId(null); + setIsVisible(false); + } + } + }; + + return { + isVisible, + tempPostId, + uploadFailed, + handleRetry, + handleCancel, + }; +}; diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index b3d248f..bc13c07 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -313,7 +313,6 @@ export function useCreatePost(): UseCreatePost { const [tempReelThumbnail, setTempReelThumbnail] = useState([]); const [isAnonymousPost, setIsAnonymousPost] = useState(false); const [temporaryPost, setTemporaryPost] = useState(null); - // const [temporaryId, setTemporaryId] = useState(null); const [mediaList, setMediaList] = useState([]); const [selectedTopicIds, setSelectedTopicIds] = useState([]); const [preSelectedTopics, setPreSelectedTopics] = useState([]); From 05ed62e0b7a7fc2537a78a7d5e3ede7127b25912 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Mon, 28 Apr 2025 18:05:37 +0530 Subject: [PATCH 10/22] changed hook name --- core/src/components/LMFeedUploadBanner.tsx | 2 +- core/src/hooks/{LMFeedRetryPost.ts => useRetryPost.ts} | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) rename core/src/hooks/{LMFeedRetryPost.ts => useRetryPost.ts} (99%) diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index 2820972..c9a16b9 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { useLMFeedRetryPost } from "../hooks/LMFeedRetryPost"; +import { useLMFeedRetryPost } from "../hooks/useRetryPost"; const LMFeedUploadBanner: React.FC = () => { const { isVisible, uploadFailed, handleRetry, handleCancel } = useLMFeedRetryPost(); diff --git a/core/src/hooks/LMFeedRetryPost.ts b/core/src/hooks/useRetryPost.ts similarity index 99% rename from core/src/hooks/LMFeedRetryPost.ts rename to core/src/hooks/useRetryPost.ts index 66778cf..bc3f1df 100644 --- a/core/src/hooks/LMFeedRetryPost.ts +++ b/core/src/hooks/useRetryPost.ts @@ -204,3 +204,4 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { handleCancel, }; }; + From 50e548b29a5d78499c2e314e3c148c80af07ce7e Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Mon, 28 Apr 2025 18:08:49 +0530 Subject: [PATCH 11/22] added missing new lines --- core/src/components/LMFeedUploadBanner.tsx | 1 + core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx | 2 +- core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx | 2 +- core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx | 2 +- core/src/components/lmTopicFeed/LMFeedViewTopicDropdown.tsx | 1 + 5 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index c9a16b9..c9b5376 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -44,3 +44,4 @@ const LMFeedUploadBanner: React.FC = () => { export default LMFeedUploadBanner; + diff --git a/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx b/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx index dda429f..663b008 100644 --- a/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx +++ b/core/src/components/lmDialogs/LMFeedDeleteDialogBox.tsx @@ -62,4 +62,4 @@ const LMFeedDeleteDialogBox = ({ mode, onClose }: LMDeletePostDialogProps) => { }; -export default LMFeedDeleteDialogBox; \ No newline at end of file +export default LMFeedDeleteDialogBox; diff --git a/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx b/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx index ad2289a..acaa945 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicSelectionTile.tsx @@ -30,4 +30,4 @@ const LMFeedTopicSelectionTile: React.FC = memo( ); -export default LMFeedTopicSelectionTile; \ No newline at end of file +export default LMFeedTopicSelectionTile; diff --git a/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx b/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx index 264a5a6..f5c8e4e 100644 --- a/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx +++ b/core/src/components/lmTopicFeed/LMFeedTopicsTile.tsx @@ -14,4 +14,4 @@ const LMFeedTopicsTile = ({ topic }: LMFeedTopicTileInterface) => { }; -export default LMFeedTopicsTile; \ No newline at end of file +export default LMFeedTopicsTile; diff --git a/core/src/components/lmTopicFeed/LMFeedViewTopicDropdown.tsx b/core/src/components/lmTopicFeed/LMFeedViewTopicDropdown.tsx index a9395a5..1686c1f 100644 --- a/core/src/components/lmTopicFeed/LMFeedViewTopicDropdown.tsx +++ b/core/src/components/lmTopicFeed/LMFeedViewTopicDropdown.tsx @@ -360,3 +360,4 @@ const LMFeedViewTopicDropdown: React.FC = ({ }; export default LMFeedViewTopicDropdown; + From 4f01d9d0b645941cceae0308cedc3d064faaf9d9 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Mon, 28 Apr 2025 18:46:09 +0530 Subject: [PATCH 12/22] increased version code --- core/src/shared/getClient.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/shared/getClient.ts b/core/src/shared/getClient.ts index 7742264..a1093d5 100644 --- a/core/src/shared/getClient.ts +++ b/core/src/shared/getClient.ts @@ -3,7 +3,7 @@ import { LMFeedClient } from "@likeminds.community/feed-js"; export function initiateFeedClient() { const lmFeedClient = LMFeedClient.Builder() .setPlatformCode("rt") - .setVersionCode(23) + .setVersionCode(24) .build(); return lmFeedClient; } From 9eaa81e2d73c31268451c8dbb3542435206debd3 Mon Sep 17 00:00:00 2001 From: sumitBora12 Date: Tue, 29 Apr 2025 16:15:28 +0530 Subject: [PATCH 13/22] made all the changes mentioned --- core/src/assets/scss/_components.scss | 2 - ...-upload-banner.scss => _uploadBanner.scss} | 0 core/src/hooks/useCreatePost.ts | 66 +++++++------------ core/src/hooks/useRetryPost.ts | 3 - core/src/shared/types/likeminds-feed.d.ts | 0 core/src/shared/utils/attachmentUtils.ts | 10 +++ core/src/shared/utils/createTempPost.ts | 45 +++++++++++++ 7 files changed, 78 insertions(+), 48 deletions(-) rename core/src/assets/scss/{components/_lm-feed-upload-banner.scss => _uploadBanner.scss} (100%) delete mode 100644 core/src/shared/types/likeminds-feed.d.ts create mode 100644 core/src/shared/utils/attachmentUtils.ts create mode 100644 core/src/shared/utils/createTempPost.ts diff --git a/core/src/assets/scss/_components.scss b/core/src/assets/scss/_components.scss index aaabb17..ef00950 100644 --- a/core/src/assets/scss/_components.scss +++ b/core/src/assets/scss/_components.scss @@ -19,8 +19,6 @@ padding: 1rem; } -// Import upload banner component -@import "components/lm-feed-upload-banner"; .lm-card-title { font-weight: bold; diff --git a/core/src/assets/scss/components/_lm-feed-upload-banner.scss b/core/src/assets/scss/_uploadBanner.scss similarity index 100% rename from core/src/assets/scss/components/_lm-feed-upload-banner.scss rename to core/src/assets/scss/_uploadBanner.scss diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index bc13c07..39e194a 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -1,4 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ +import { createTempPost } from "../shared/utils/createTempPost"; +import { isMediaAttachmentType } from "../shared/utils/attachmentUtils"; import { MutableRefObject, useCallback, @@ -681,47 +683,30 @@ export function useCreatePost(): UseCreatePost { } // Check if post has media attachments - const hasMediaAttachments = attachmentResponseArray.some( - (attachment) => - attachment.type === AttachmentType.IMAGE || - attachment.type === AttachmentType.VIDEO || - attachment.type === AttachmentType.DOCUMENT || - attachment.type === AttachmentType.REEL, + const hasMediaAttachments = attachmentResponseArray.some((attachment) => + isMediaAttachmentType(attachment.type), ); let localTempId = null; if (hasMediaAttachments) { - const tempId = `-${Date.now()}`; + const tempId = `-${Date.now()}`; localTempId = tempId; const tempPost = SaveTemporaryPostRequest.builder() .setTempPost({ - post: { - id: tempId, - text: textContent, + post: createTempPost({ + textContent, attachments: attachmentResponseArray, - topics: selectedTopicIds, - isAnonymous: isAnonymousPost, - heading: question || "", - createdAt: Date.now(), - commentsCount: 0, - isEdited: false, - isLiked: false, - isPinned: false, - isRepost: false, - isRepostedByUser: false, - isSaved: false, - likesCount: 0, - menuItems: [], - repostCount: 0, - tempId: null, - updatedAt: Date.now(), - uuid: "", - isHidden: false, - }, + selectedTopicIds, + isAnonymousPost, + question: question || "", + tempId, + uuid: currentUser?.sdkClientInfo.uuid || "", + }), }) .build(); // Save to local storage await lmFeedclient?.saveTemporaryPost(tempPost); + // ... (rest of the code remains the same) // Set the temporary post in the context setTemporaryPost(tempPost.tempPost.post); @@ -782,7 +767,7 @@ export function useCreatePost(): UseCreatePost { // Dispatch failed event with upload failure flag customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, - { isUploadFailure: true } + { isUploadFailure: true }, ); } finally { setOpenPostCreationProgressBar!(false); @@ -829,11 +814,7 @@ export function useCreatePost(): UseCreatePost { if (ogTag) { if ( !attachmentResponseArray.some( - (attachment) => - attachment.type === AttachmentType.IMAGE || - attachment.type === AttachmentType.VIDEO || - attachment.type === AttachmentType.DOCUMENT || - attachment.type === AttachmentType.REEL, + (attachment) => isMediaAttachmentType(attachment.type) ) ) { attachmentResponseArray.pop(); @@ -975,11 +956,11 @@ export function useCreatePost(): UseCreatePost { setOpenPostCreationProgressBar!(true); // Re-upload media attachments for (const attachment of post.attachments) { - if ([1, 2, 3, 11].includes(attachment.type)) { + if (isMediaAttachmentType(attachment.type)) { const file = attachment.metaData.file; await HelperFunctionsClass.uploadMedia( file, - currentUser?.sdkClientInfo.uuid || "" + currentUser?.sdkClientInfo.uuid || "", ); } } @@ -988,7 +969,7 @@ export function useCreatePost(): UseCreatePost { .setAttachments(post.attachments) .setText(post.text) .setTopicIds(post.topics) - .setTempId(Date.now().toString()) + .setTempId(post.id) .setIsAnonymous(post.isAnonymous) .build(); @@ -1001,20 +982,19 @@ export function useCreatePost(): UseCreatePost { await lmFeedclient?.deleteTemporaryPost(deleteRequest); customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATED + LMFeedCustomActionEvents.POST_CREATED, ); } } catch (error) { - console.error("Error during retry upload:", error); customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, - { isUploadFailure: true } + { isUploadFailure: true }, ); } finally { setOpenPostCreationProgressBar!(false); } } - } + }, ); customEventClient?.listen( @@ -1241,4 +1221,4 @@ export function useCreatePost(): UseCreatePost { ? onPollExpiryTimeClicked.bind(null, postCreationActionAndDataStore) : pollExpiryTimeClickFunction, }; -} \ No newline at end of file +} diff --git a/core/src/hooks/useRetryPost.ts b/core/src/hooks/useRetryPost.ts index bc3f1df..532eb43 100644 --- a/core/src/hooks/useRetryPost.ts +++ b/core/src/hooks/useRetryPost.ts @@ -119,11 +119,9 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { currentUser.sdkClientInfo.uuid ); } catch (error) { - console.error('Failed to fetch file from URL:', error); continue; } } else { - console.warn('Unsupported attachment type:', attachment.type); continue; } } @@ -154,7 +152,6 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { ); } } catch (error) { - console.error("Error in upload/post creation:", error); customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, {} diff --git a/core/src/shared/types/likeminds-feed.d.ts b/core/src/shared/types/likeminds-feed.d.ts deleted file mode 100644 index e69de29..0000000 diff --git a/core/src/shared/utils/attachmentUtils.ts b/core/src/shared/utils/attachmentUtils.ts new file mode 100644 index 0000000..daba2f3 --- /dev/null +++ b/core/src/shared/utils/attachmentUtils.ts @@ -0,0 +1,10 @@ +import { AttachmentType } from "@likeminds.community/feed-js"; + +export function isMediaAttachmentType(type: AttachmentType): boolean { + return ( + type === AttachmentType.IMAGE || + type === AttachmentType.VIDEO || + type === AttachmentType.DOCUMENT || + type === AttachmentType.REEL + ); +} diff --git a/core/src/shared/utils/createTempPost.ts b/core/src/shared/utils/createTempPost.ts new file mode 100644 index 0000000..7b721c5 --- /dev/null +++ b/core/src/shared/utils/createTempPost.ts @@ -0,0 +1,45 @@ +interface CreateTempPostParams { + textContent: string; + attachments: any[]; + selectedTopicIds: string[]; + isAnonymousPost: boolean; + question?: string; + tempId: string; + uuid: string; +} + +export const createTempPost = ({ + textContent, + attachments, + selectedTopicIds, + isAnonymousPost, + question = "", + tempId, + uuid, +}: CreateTempPostParams) => { + const currentTime = Date.now(); + + return { + id: tempId, + text: textContent, + attachments, + topics: selectedTopicIds, + isAnonymous: isAnonymousPost, + heading: question, + createdAt: currentTime, + commentsCount: 0, + isEdited: false, + isLiked: false, + isPinned: false, + isRepost: false, + isRepostedByUser: false, + isSaved: false, + likesCount: 0, + menuItems: [], + repostCount: 0, + tempId: null, + updatedAt: currentTime, + uuid, + isHidden: false, + }; +}; From 7f8934b773be0b679c05a81c022fa37597e81a92 Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Wed, 14 May 2025 18:16:56 +0530 Subject: [PATCH 14/22] retry mechanism fixes --- core/package-lock.json | 1518 ++++++++++---------- core/package.json | 2 +- core/src/assets/images/X.svg | 3 + core/src/assets/images/retry-mechanism.svg | 3 + core/src/assets/scss/_uploadBanner.scss | 110 +- core/src/assets/scss/styles.scss | 2 + core/src/components/LMFeedUploadBanner.tsx | 119 +- core/src/components/LMSocialFeed.tsx | 4 +- core/src/hooks/useCreatePost.ts | 145 +- core/src/hooks/useLMUserProvider.ts | 1 + core/src/hooks/useRetryPost.ts | 161 ++- core/src/shared/customEvents.ts | 2 - core/src/shared/utils/createTempPost.ts | 6 +- 13 files changed, 1112 insertions(+), 964 deletions(-) create mode 100644 core/src/assets/images/X.svg create mode 100644 core/src/assets/images/retry-mechanism.svg diff --git a/core/package-lock.json b/core/package-lock.json index 69658d6..721bc25 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,19 +1,19 @@ { "name": "@likeminds.community/likeminds-feed-reactjs", - "version": "1.11.1", + "version": "1.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@likeminds.community/likeminds-feed-reactjs", - "version": "1.11.1", + "version": "1.12.0", "dependencies": { "@aws-sdk/client-s3": "3.556.0", "@aws-sdk/credential-provider-cognito-identity": "3.556.0", "@aws-sdk/credential-providers": "3.556.0", "@emotion/react": "11.11.3", "@emotion/styled": "11.11.0", - "@likeminds.community/feed-js": "file:../../../dataFeed/likeminds-feed-js-data/likeminds.community-feed-js-1.19.0.tgz", + "@likeminds.community/feed-js": "file:../../revamp/likeminds.community-feed-js-1.20.0.tgz", "@mui/material": "5.15.10", "@mui/x-date-pickers": "7.22.2", "@testing-library/jest-dom": "5.14.1", @@ -1177,9 +1177,9 @@ } }, "node_modules/@aws-sdk/util-locate-window": { - "version": "3.723.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.723.0.tgz", - "integrity": "sha512-Yf2CS10BqK688DRsrKI/EO6B8ff5J86NXe4C+VCysK7UOgN0l1zOTeTukZ3H8Q9tYYX3oaF1961o8vRkFm7Nmw==", + "version": "3.804.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.804.0.tgz", + "integrity": "sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -1246,44 +1246,44 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.25.9", + "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", - "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", + "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", - "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", + "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.26.10", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helpers": "^7.26.10", - "@babel/parser": "^7.26.10", - "@babel/template": "^7.26.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helpers": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1314,9 +1314,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.0.tgz", - "integrity": "sha512-dtnzmSjXfgL/HDgMcmsLSzyGbEosi4DrGWoCNfuI+W4IkVJw6izpTe7LtOdwAXnkDqw5yweboYCTkM2rQizCng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.1.tgz", + "integrity": "sha512-q8rjOuadH0V6Zo4XLMkJ3RMQ9MSBqwaDByyYB0izsYdaIWGNLmEblbCOf1vyFHICcg16CD7Fsi51vcQnYxmt6Q==", "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -1350,13 +1350,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", - "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", + "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0", + "@babel/parser": "^7.27.1", + "@babel/types": "^7.27.1", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -1366,25 +1366,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", + "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", - "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-validator-option": "^7.25.9", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -1403,17 +1403,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz", - "integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.1.tgz", + "integrity": "sha512-QwGAmuvM17btKU5VqXfb+Giw4JcN0hjuufz3DYnpeVDvZLAObloM77bhMXiqry3Iio+Ai4phVRDwl6WU10+r5A==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/helper-replace-supers": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/traverse": "^7.27.0", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.27.1", "semver": "^6.3.1" }, "engines": { @@ -1433,12 +1433,12 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.0.tgz", - "integrity": "sha512-fO8l08T76v48BhpNRW/nQ0MxfnSdoSKUJBMjubOAYffsVuGG5qOfMq7N6Es7UJvi7Y8goXXo07EfcHZXDPuELQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.27.1.tgz", + "integrity": "sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", "regexpu-core": "^6.2.0", "semver": "^6.3.1" }, @@ -1475,40 +1475,40 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", + "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1518,35 +1518,35 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.9" + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", - "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", + "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-wrap-function": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-wrap-function": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1556,14 +1556,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz", - "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.25.9", - "@babel/helper-optimise-call-expression": "^7.25.9", - "@babel/traverse": "^7.26.5" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1573,79 +1573,79 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.27.1.tgz", + "integrity": "sha512-NFJK2sHUvrjo8wAU/nQTWU890/zB2jj0qBcCbZbbf+005cAsv6tMjXz31fBign6M5ov1o0Bllu+9nbqkfsjjJQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.9", - "@babel/traverse": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/template": "^7.27.1", + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", - "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", + "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", - "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", + "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.0" + "@babel/types": "^7.27.1" }, "bin": { "parser": "bin/babel-parser.js" @@ -1655,13 +1655,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.27.1.tgz", + "integrity": "sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1671,12 +1671,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", + "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1686,12 +1686,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", + "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1701,14 +1701,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", + "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1718,13 +1718,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.27.1.tgz", + "integrity": "sha512-6BpaYGDavZqkI6yT+KSPdpZFfpnd68UKXbcjI9pJ13pvHhPrCKWOOLp+ysvMeA+DxnhuPpgIaRpxRxo5A9t5jw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1751,14 +1751,14 @@ } }, "node_modules/@babel/plugin-proposal-decorators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz", - "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.27.1.tgz", + "integrity": "sha512-DTxe4LBPrtFdsWzgpmbBKevg3e9PBy+dXRt19kSbucbZvL2uqtdqwwpluL1jfxYE0wIDTFp1nTy/q6gNLsxXrg==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-decorators": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1900,12 +1900,12 @@ } }, "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz", - "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1915,12 +1915,12 @@ } }, "node_modules/@babel/plugin-syntax-flow": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz", - "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1930,12 +1930,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1945,12 +1945,12 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -1984,12 +1984,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2101,12 +2101,12 @@ } }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2132,12 +2132,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2147,14 +2147,14 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz", - "integrity": "sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.27.1.tgz", + "integrity": "sha512-eST9RrwlpaoJBDHShc+DS2SG4ATTi2MYNb4OxYkf3n+7eb49LWpnS+HSpVfW4x927qQwgk8A2hGNVaajAEw0EA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-remap-async-to-generator": "^7.25.9", - "@babel/traverse": "^7.26.8" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2164,14 +2164,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", + "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-remap-async-to-generator": "^7.25.9" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-remap-async-to-generator": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2181,12 +2181,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz", - "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2196,12 +2196,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.0.tgz", - "integrity": "sha512-u1jGphZ8uDI2Pj/HJj6YQ6XQLZCNjOlprjxB5SVz6rq2T6SwAR+CdrWK0CP7F+9rDVMXdB0+r6Am5G5aobOjAQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz", + "integrity": "sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2211,13 +2211,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", + "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2227,13 +2227,13 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.27.1.tgz", + "integrity": "sha512-s734HmYU78MVzZ++joYM+NkJusItbdRcbm+AGRgJCt3iA+yux0QpD9cBVdz3tKyrjVYWRl7j0mHSmv4lhV0aoA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2243,16 +2243,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.27.1.tgz", + "integrity": "sha512-7iLhfFAubmpeJe/Wo2TVuDrykh/zlWXLzPNdL0Jqn/Xu8R3QQ8h9ff8FQoISZOsw74/HFqFI7NX63HN7QFIHKA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9", - "@babel/traverse": "^7.25.9", + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.27.1", "globals": "^11.1.0" }, "engines": { @@ -2263,13 +2263,13 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/template": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2279,12 +2279,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz", + "integrity": "sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2294,13 +2294,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", + "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2310,12 +2310,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", + "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2325,13 +2325,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2341,12 +2341,12 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", + "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2356,12 +2356,12 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz", - "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.27.1.tgz", + "integrity": "sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2371,12 +2371,12 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", + "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2386,13 +2386,13 @@ } }, "node_modules/@babel/plugin-transform-flow-strip-types": { - "version": "7.26.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.26.5.tgz", - "integrity": "sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/plugin-syntax-flow": "^7.26.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2402,13 +2402,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz", - "integrity": "sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2418,14 +2418,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2435,12 +2435,12 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", + "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2450,12 +2450,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2465,12 +2465,12 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.27.1.tgz", + "integrity": "sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2480,12 +2480,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2495,13 +2495,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", + "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2511,13 +2511,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz", - "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.26.0", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2527,15 +2527,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.27.1.tgz", + "integrity": "sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9", - "@babel/traverse": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2545,13 +2545,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", + "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2561,13 +2561,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", + "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2577,12 +2577,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", + "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2592,12 +2592,12 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.26.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz", - "integrity": "sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", + "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2607,12 +2607,12 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", + "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2622,14 +2622,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz", + "integrity": "sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g==", "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9" + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2639,13 +2640,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-replace-supers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2655,12 +2656,12 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", + "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2670,13 +2671,13 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.27.1.tgz", + "integrity": "sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2686,12 +2687,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.1.tgz", + "integrity": "sha512-018KRk76HWKeZ5l4oTj2zPpSh+NbGdt0st5S6x0pga6HgrjBOJb24mMDHorFopOOd6YHkLgOZ+zaCjZGPO4aKg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2701,13 +2702,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", + "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2717,14 +2718,14 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", + "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2734,12 +2735,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2749,12 +2750,12 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz", - "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz", + "integrity": "sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2764,12 +2765,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz", - "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.27.1.tgz", + "integrity": "sha512-p9+Vl3yuHPmkirRrg021XiP+EETmPMQTLr6Ayjj85RLNEbb3Eya/4VI0vAdzQG9SEAl2Lnt7fy5lZyMzjYoZQQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2779,16 +2780,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz", - "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/types": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2798,12 +2799,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz", - "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", + "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.25.9" + "@babel/plugin-transform-react-jsx": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2813,13 +2814,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", - "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2829,13 +2830,13 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", - "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2845,13 +2846,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz", - "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", + "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2861,13 +2862,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.0.tgz", - "integrity": "sha512-LX/vCajUJQDqE7Aum/ELUMZAY19+cDpghxrnyt5I1tV6X5PyC86AOoWXWFYFeIvauyeSA6/ktn4tQVn/3ZifsA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz", + "integrity": "sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "regenerator-transform": "^0.15.2" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2877,13 +2877,13 @@ } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", + "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2893,12 +2893,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", + "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2908,13 +2908,13 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.26.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.26.10.tgz", - "integrity": "sha512-NWaL2qG6HRpONTnj4JvDU6th4jYeZOJgu3QhmFTCihib0ermtOJqktA5BduGm3suhhVe9EMP9c9+mfJ/I9slqw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.1.tgz", + "integrity": "sha512-TqGF3desVsTcp3WrJGj4HfKokfCXCLcHpt4PJF0D8/iT6LPd9RS82Upw3KPeyr6B22Lfd3DO8MVrmp0oRkUDdw==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.9", - "@babel/helper-plugin-utils": "^7.26.5", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.11.0", "babel-plugin-polyfill-regenerator": "^0.6.1", @@ -2937,12 +2937,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2952,13 +2952,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2968,12 +2968,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", + "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2983,12 +2983,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.26.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz", - "integrity": "sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -2998,12 +2998,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.0.tgz", - "integrity": "sha512-+LLkxA9rKJpNoGsbLnAgOCdESl73vwYn+V6b+5wHbrE7OGKVDPHIQvbFSzqE6rwqaCw2RE+zdJrlLkcf8YOA0w==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", + "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3013,16 +3013,16 @@ } }, "node_modules/@babel/plugin-transform-typescript": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.0.tgz", - "integrity": "sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.1.tgz", + "integrity": "sha512-Q5sT5+O4QUebHdbwKedFBEwRLb02zJ7r4A5Gg2hUoLuU3FjdMcyqcywqUrLCaDsFCxzokf7u9kuy7qz51YUuAg==", "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.25.9", - "@babel/helper-create-class-features-plugin": "^7.27.0", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", - "@babel/plugin-syntax-typescript": "^7.25.9" + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3032,12 +3032,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", + "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3047,13 +3047,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", + "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3063,13 +3063,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", + "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3079,13 +3079,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", + "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.9", - "@babel/helper-plugin-utils": "^7.25.9" + "@babel/helper-create-regexp-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3095,74 +3095,74 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.9.tgz", - "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.26.8", - "@babel/helper-compilation-targets": "^7.26.5", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.27.2.tgz", + "integrity": "sha512-Ma4zSuYSlGNRlCLO+EAzLnCmJK2vdstgv+n7aUP+/IKZrOfWHOJVdSJtuub8RzHTj3ahD37k5OKJWvzf16TQyQ==", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.27.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.27.1", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.26.0", - "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-import-assertions": "^7.27.1", + "@babel/plugin-syntax-import-attributes": "^7.27.1", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.25.9", - "@babel/plugin-transform-async-generator-functions": "^7.26.8", - "@babel/plugin-transform-async-to-generator": "^7.25.9", - "@babel/plugin-transform-block-scoped-functions": "^7.26.5", - "@babel/plugin-transform-block-scoping": "^7.25.9", - "@babel/plugin-transform-class-properties": "^7.25.9", - "@babel/plugin-transform-class-static-block": "^7.26.0", - "@babel/plugin-transform-classes": "^7.25.9", - "@babel/plugin-transform-computed-properties": "^7.25.9", - "@babel/plugin-transform-destructuring": "^7.25.9", - "@babel/plugin-transform-dotall-regex": "^7.25.9", - "@babel/plugin-transform-duplicate-keys": "^7.25.9", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-dynamic-import": "^7.25.9", - "@babel/plugin-transform-exponentiation-operator": "^7.26.3", - "@babel/plugin-transform-export-namespace-from": "^7.25.9", - "@babel/plugin-transform-for-of": "^7.26.9", - "@babel/plugin-transform-function-name": "^7.25.9", - "@babel/plugin-transform-json-strings": "^7.25.9", - "@babel/plugin-transform-literals": "^7.25.9", - "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", - "@babel/plugin-transform-member-expression-literals": "^7.25.9", - "@babel/plugin-transform-modules-amd": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.26.3", - "@babel/plugin-transform-modules-systemjs": "^7.25.9", - "@babel/plugin-transform-modules-umd": "^7.25.9", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", - "@babel/plugin-transform-new-target": "^7.25.9", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.26.6", - "@babel/plugin-transform-numeric-separator": "^7.25.9", - "@babel/plugin-transform-object-rest-spread": "^7.25.9", - "@babel/plugin-transform-object-super": "^7.25.9", - "@babel/plugin-transform-optional-catch-binding": "^7.25.9", - "@babel/plugin-transform-optional-chaining": "^7.25.9", - "@babel/plugin-transform-parameters": "^7.25.9", - "@babel/plugin-transform-private-methods": "^7.25.9", - "@babel/plugin-transform-private-property-in-object": "^7.25.9", - "@babel/plugin-transform-property-literals": "^7.25.9", - "@babel/plugin-transform-regenerator": "^7.25.9", - "@babel/plugin-transform-regexp-modifiers": "^7.26.0", - "@babel/plugin-transform-reserved-words": "^7.25.9", - "@babel/plugin-transform-shorthand-properties": "^7.25.9", - "@babel/plugin-transform-spread": "^7.25.9", - "@babel/plugin-transform-sticky-regex": "^7.25.9", - "@babel/plugin-transform-template-literals": "^7.26.8", - "@babel/plugin-transform-typeof-symbol": "^7.26.7", - "@babel/plugin-transform-unicode-escapes": "^7.25.9", - "@babel/plugin-transform-unicode-property-regex": "^7.25.9", - "@babel/plugin-transform-unicode-regex": "^7.25.9", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/plugin-transform-arrow-functions": "^7.27.1", + "@babel/plugin-transform-async-generator-functions": "^7.27.1", + "@babel/plugin-transform-async-to-generator": "^7.27.1", + "@babel/plugin-transform-block-scoped-functions": "^7.27.1", + "@babel/plugin-transform-block-scoping": "^7.27.1", + "@babel/plugin-transform-class-properties": "^7.27.1", + "@babel/plugin-transform-class-static-block": "^7.27.1", + "@babel/plugin-transform-classes": "^7.27.1", + "@babel/plugin-transform-computed-properties": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-dotall-regex": "^7.27.1", + "@babel/plugin-transform-duplicate-keys": "^7.27.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-dynamic-import": "^7.27.1", + "@babel/plugin-transform-exponentiation-operator": "^7.27.1", + "@babel/plugin-transform-export-namespace-from": "^7.27.1", + "@babel/plugin-transform-for-of": "^7.27.1", + "@babel/plugin-transform-function-name": "^7.27.1", + "@babel/plugin-transform-json-strings": "^7.27.1", + "@babel/plugin-transform-literals": "^7.27.1", + "@babel/plugin-transform-logical-assignment-operators": "^7.27.1", + "@babel/plugin-transform-member-expression-literals": "^7.27.1", + "@babel/plugin-transform-modules-amd": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-modules-systemjs": "^7.27.1", + "@babel/plugin-transform-modules-umd": "^7.27.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", + "@babel/plugin-transform-new-target": "^7.27.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", + "@babel/plugin-transform-numeric-separator": "^7.27.1", + "@babel/plugin-transform-object-rest-spread": "^7.27.2", + "@babel/plugin-transform-object-super": "^7.27.1", + "@babel/plugin-transform-optional-catch-binding": "^7.27.1", + "@babel/plugin-transform-optional-chaining": "^7.27.1", + "@babel/plugin-transform-parameters": "^7.27.1", + "@babel/plugin-transform-private-methods": "^7.27.1", + "@babel/plugin-transform-private-property-in-object": "^7.27.1", + "@babel/plugin-transform-property-literals": "^7.27.1", + "@babel/plugin-transform-regenerator": "^7.27.1", + "@babel/plugin-transform-regexp-modifiers": "^7.27.1", + "@babel/plugin-transform-reserved-words": "^7.27.1", + "@babel/plugin-transform-shorthand-properties": "^7.27.1", + "@babel/plugin-transform-spread": "^7.27.1", + "@babel/plugin-transform-sticky-regex": "^7.27.1", + "@babel/plugin-transform-template-literals": "^7.27.1", + "@babel/plugin-transform-typeof-symbol": "^7.27.1", + "@babel/plugin-transform-unicode-escapes": "^7.27.1", + "@babel/plugin-transform-unicode-property-regex": "^7.27.1", + "@babel/plugin-transform-unicode-regex": "^7.27.1", + "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.11.0", @@ -3201,17 +3201,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.26.3", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz", - "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.27.1.tgz", + "integrity": "sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.9", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-transform-react-display-name": "^7.25.9", - "@babel/plugin-transform-react-jsx": "^7.25.9", - "@babel/plugin-transform-react-jsx-development": "^7.25.9", - "@babel/plugin-transform-react-pure-annotations": "^7.25.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-transform-react-display-name": "^7.27.1", + "@babel/plugin-transform-react-jsx": "^7.27.1", + "@babel/plugin-transform-react-jsx-development": "^7.27.1", + "@babel/plugin-transform-react-pure-annotations": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3221,16 +3221,16 @@ } }, "node_modules/@babel/preset-typescript": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.0.tgz", - "integrity": "sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.1.tgz", + "integrity": "sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/helper-validator-option": "^7.25.9", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/plugin-transform-modules-commonjs": "^7.26.3", - "@babel/plugin-transform-typescript": "^7.27.0" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-validator-option": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-transform-modules-commonjs": "^7.27.1", + "@babel/plugin-transform-typescript": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -3240,55 +3240,51 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", - "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", + "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.0.tgz", - "integrity": "sha512-UWjX6t+v+0ckwZ50Y5ShZLnlk95pP5MyW/pon9tiYzl3+18pkTHTFNTKr7rQbfRXPkowt2QAn30o1b6oswszew==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.1.tgz", + "integrity": "sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA==", "license": "MIT", "dependencies": { - "core-js-pure": "^3.30.2", - "regenerator-runtime": "^0.14.0" + "core-js-pure": "^3.30.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", - "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/parser": "^7.27.0", - "@babel/types": "^7.27.0" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", - "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", + "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.26.2", - "@babel/generator": "^7.27.0", - "@babel/parser": "^7.27.0", - "@babel/template": "^7.27.0", - "@babel/types": "^7.27.0", + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.27.1", + "@babel/parser": "^7.27.1", + "@babel/template": "^7.27.1", + "@babel/types": "^7.27.1", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -3297,13 +3293,13 @@ } }, "node_modules/@babel/types": { - "version": "7.27.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", - "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", + "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.9", - "@babel/helper-validator-identifier": "^7.25.9" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -4223,9 +4219,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", - "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", + "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.4.3" @@ -4889,21 +4885,21 @@ "license": "Apache-2.0" }, "node_modules/@floating-ui/core": { - "version": "1.6.9", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", - "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", + "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.13", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", - "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", + "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.6.0", + "@floating-ui/core": "^1.7.0", "@floating-ui/utils": "^0.2.9" } }, @@ -5744,9 +5740,9 @@ "license": "MIT" }, "node_modules/@likeminds.community/feed-js": { - "version": "1.19.0", - "resolved": "file:../../../dataFeed/likeminds-feed-js-data/likeminds.community-feed-js-1.19.0.tgz", - "integrity": "sha512-qCfh5ldrKZNdh4ssvOAy+s6OM0LOIz9lPiZ0PnOZKscqhWLdZ8T9H59zBxEkqwPgEvoxpUEGHugtnL55hiCiyg==", + "version": "1.20.0", + "resolved": "file:../../revamp/likeminds.community-feed-js-1.20.0.tgz", + "integrity": "sha512-iCTxPqJP3j/9X2DujvDV9U6+D5usK73eBOGBqQVYqTf5k6lKQ4//JXPCaQB9JcBcG25mxyr+/Gh+TxlFwUDGQA==", "license": "ISC", "dependencies": { "@aws-sdk/client-s3": "^3.226.0", @@ -6850,12 +6846,12 @@ } }, "node_modules/@mui/types": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.1.tgz", - "integrity": "sha512-gUL8IIAI52CRXP/MixT1tJKt3SI6tVv4U/9soFsTtAsHzaJQptZ42ffdHZV3niX1ei0aUgMvOxBBN0KYqdG39g==", + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.2.tgz", + "integrity": "sha512-edRc5JcLPsrlNFYyTPxds+d5oUovuUxnnDtpJUbP6WMeV4+6eaX/mqai1ZIWT62lCOe0nlrON0s9HDiv5en5bA==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.27.0" + "@babel/runtime": "^7.27.1" }, "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -7775,9 +7771,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", - "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", + "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", "cpu": [ "arm" ], @@ -7789,9 +7785,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", - "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", + "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", "cpu": [ "arm64" ], @@ -7803,9 +7799,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", - "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", + "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", "cpu": [ "arm64" ], @@ -7817,9 +7813,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", - "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", + "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", "cpu": [ "x64" ], @@ -7831,9 +7827,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", - "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", + "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", "cpu": [ "arm64" ], @@ -7845,9 +7841,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", - "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", + "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", "cpu": [ "x64" ], @@ -7859,9 +7855,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", - "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", + "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", "cpu": [ "arm" ], @@ -7873,9 +7869,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", - "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", + "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", "cpu": [ "arm" ], @@ -7887,9 +7883,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", - "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", + "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", "cpu": [ "arm64" ], @@ -7901,9 +7897,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", - "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", + "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", "cpu": [ "arm64" ], @@ -7915,9 +7911,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", - "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", + "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", "cpu": [ "loong64" ], @@ -7929,9 +7925,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", - "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", + "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", "cpu": [ "ppc64" ], @@ -7943,9 +7939,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", - "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", + "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", "cpu": [ "riscv64" ], @@ -7957,9 +7953,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", - "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", + "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", "cpu": [ "riscv64" ], @@ -7971,9 +7967,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", - "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", + "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", "cpu": [ "s390x" ], @@ -7985,9 +7981,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", - "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", + "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", "cpu": [ "x64" ], @@ -7999,9 +7995,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", - "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", + "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", "cpu": [ "x64" ], @@ -8013,9 +8009,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", - "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", + "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", "cpu": [ "arm64" ], @@ -8027,9 +8023,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", - "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", + "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", "cpu": [ "ia32" ], @@ -8041,9 +8037,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", - "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", + "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", "cpu": [ "x64" ], @@ -9617,9 +9613,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.20.tgz", - "integrity": "sha512-IPaCZN7PShZK/3t6Q87pfTkRm6oLTd4vztyoj+cbHUF1g3FfVb2tFIL79uCRKEfv16AhqDMBywP2VW3KIZUvcg==", + "version": "18.3.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.21.tgz", + "integrity": "sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw==", "dev": true, "license": "MIT", "dependencies": { @@ -9628,9 +9624,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.6", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.6.tgz", - "integrity": "sha512-nf22//wEbKXusP6E9pfOCDwFdHAX4u172eaJI4YkDRQEZiorm6KfYnSC2SWLDMVWUOWPERmJnN0ujeAfTBLvrw==", + "version": "18.3.7", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.7.tgz", + "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==", "license": "MIT", "peerDependencies": { "@types/react": "^18.0.0" @@ -11543,9 +11539,9 @@ "license": "BSD-2-Clause" }, "node_modules/browserslist": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", - "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "version": "4.24.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", + "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", "funding": [ { "type": "opencollective", @@ -11562,10 +11558,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001688", - "electron-to-chromium": "^1.5.73", + "caniuse-lite": "^1.0.30001716", + "electron-to-chromium": "^1.5.149", "node-releases": "^2.0.19", - "update-browserslist-db": "^1.1.1" + "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" @@ -11632,14 +11628,14 @@ } }, "node_modules/cacheable": { - "version": "1.8.10", - "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.8.10.tgz", - "integrity": "sha512-0ZnbicB/N2R6uziva8l6O6BieBklArWyiGx4GkwAhLKhSHyQtRfM9T1nx7HHuHDKkYB/efJQhz3QJ6x/YqoZzA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-1.9.0.tgz", + "integrity": "sha512-8D5htMCxPDUULux9gFzv30f04Xo3wCnik0oOxKoRTPIBoqA7HtOcJ87uBhQTs3jCfZZTrUBGsYIZOgE0ZRgMAg==", "dev": true, "license": "MIT", "dependencies": { - "hookified": "^1.8.1", - "keyv": "^5.3.2" + "hookified": "^1.8.2", + "keyv": "^5.3.3" } }, "node_modules/cacheable/node_modules/keyv": { @@ -11752,9 +11748,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001715", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", - "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", + "version": "1.0.30001718", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", + "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", "funding": [ { "type": "opencollective", @@ -12250,9 +12246,9 @@ "license": "MIT" }, "node_modules/core-js": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.41.0.tgz", - "integrity": "sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.42.0.tgz", + "integrity": "sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -12261,9 +12257,9 @@ } }, "node_modules/core-js-compat": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.41.0.tgz", - "integrity": "sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.42.0.tgz", + "integrity": "sha512-bQasjMfyDGyaeWKBIu33lHh9qlSR0MFE/Nmc6nMjf/iU9b3rSMdAYz1Baxrv4lPdGUsTqZudHA4jIGSJy0SWZQ==", "license": "MIT", "dependencies": { "browserslist": "^4.24.4" @@ -12274,9 +12270,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz", - "integrity": "sha512-71Gzp96T9YPk63aUvE5Q5qP+DryB4ZloUZPSOebGM88VNw8VNfvdA7z6kGA8iGOTEzAomsRidp4jXSmUIJsL+Q==", + "version": "3.42.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.42.0.tgz", + "integrity": "sha512-007bM04u91fF4kMgwom2I5cQxAFIy8jVulgr9eozILl/SZE53QOqnW/+vviC+wQWLv+AunBG+8Q0TLoeSsSxRQ==", "hasInstallScript": true, "license": "MIT", "funding": { @@ -13335,9 +13331,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.142", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.142.tgz", - "integrity": "sha512-Ah2HgkTu/9RhTDNThBtzu2Wirdy4DC9b0sMT1pUhbkZQ5U/iwmE+PHZX1MpjD5IkJCc2wSghgGG/B04szAx07w==", + "version": "1.5.152", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", + "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", "license": "ISC" }, "node_modules/emittery": { @@ -14631,9 +14627,9 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", - "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz", + "integrity": "sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==", "dev": true, "license": "MIT", "dependencies": { @@ -16556,9 +16552,9 @@ "license": "MIT" }, "node_modules/hookified": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.2.tgz", - "integrity": "sha512-5nZbBNP44sFCDjSoB//0N7m508APCgbQ4mGGo1KJGBYyCKNHfry1Pvd0JVHZIxjdnqn8nFRBAN/eFB6Rk/4w5w==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.0.tgz", + "integrity": "sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==", "dev": true, "license": "MIT" }, @@ -16918,9 +16914,9 @@ } }, "node_modules/immutable": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.1.tgz", - "integrity": "sha512-3jatXi9ObIsPGr3N5hGw/vWWcTkq6hUYhpQz4k0wLC+owqWi/LiugIw9x0EdNZ2yGedKN/HzePiBvaJRXa0Ujg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.2.tgz", + "integrity": "sha512-qHKXW1q6liAk1Oys6umoaZbDRqjcjgSrbnrifHsfsttza7zcvRAsL7mMV6xWcyhwQy7Xj5v4hhbr6b+iDYwlmQ==", "dev": true, "license": "MIT" }, @@ -22411,9 +22407,9 @@ "license": "MIT" }, "node_modules/protobufjs": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.0.tgz", - "integrity": "sha512-Z2E/kOY1QjoMlCytmexzYfDm/w5fKAiRwpSzGtdnXW1zC88Z2yXazHHrOtwCzn+7wSxyE8PYM4rvVcMphF9sOA==", + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.1.tgz", + "integrity": "sha512-3qx3IRjR9WPQKagdwrKjO3Gu8RgQR2qqw+1KnigWhoVjFqegIj1K3bP11sGqhxrO46/XL7lekuG4jmjL+4cLsw==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -22621,12 +22617,6 @@ "node": ">=14" } }, - "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", - "license": "MIT" - }, "node_modules/react-app-rewired": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/react-app-rewired/-/react-app-rewired-2.2.1.tgz", @@ -23116,20 +23106,11 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "license": "MIT" }, - "node_modules/regenerator-transform": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regex-parser": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.1.tgz", @@ -23463,9 +23444,9 @@ } }, "node_modules/rollup": { - "version": "4.40.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", - "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "version": "4.40.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", + "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", "dev": true, "license": "MIT", "dependencies": { @@ -23479,26 +23460,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.0", - "@rollup/rollup-android-arm64": "4.40.0", - "@rollup/rollup-darwin-arm64": "4.40.0", - "@rollup/rollup-darwin-x64": "4.40.0", - "@rollup/rollup-freebsd-arm64": "4.40.0", - "@rollup/rollup-freebsd-x64": "4.40.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", - "@rollup/rollup-linux-arm-musleabihf": "4.40.0", - "@rollup/rollup-linux-arm64-gnu": "4.40.0", - "@rollup/rollup-linux-arm64-musl": "4.40.0", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-gnu": "4.40.0", - "@rollup/rollup-linux-riscv64-musl": "4.40.0", - "@rollup/rollup-linux-s390x-gnu": "4.40.0", - "@rollup/rollup-linux-x64-gnu": "4.40.0", - "@rollup/rollup-linux-x64-musl": "4.40.0", - "@rollup/rollup-win32-arm64-msvc": "4.40.0", - "@rollup/rollup-win32-ia32-msvc": "4.40.0", - "@rollup/rollup-win32-x64-msvc": "4.40.0", + "@rollup/rollup-android-arm-eabi": "4.40.2", + "@rollup/rollup-android-arm64": "4.40.2", + "@rollup/rollup-darwin-arm64": "4.40.2", + "@rollup/rollup-darwin-x64": "4.40.2", + "@rollup/rollup-freebsd-arm64": "4.40.2", + "@rollup/rollup-freebsd-x64": "4.40.2", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", + "@rollup/rollup-linux-arm-musleabihf": "4.40.2", + "@rollup/rollup-linux-arm64-gnu": "4.40.2", + "@rollup/rollup-linux-arm64-musl": "4.40.2", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-gnu": "4.40.2", + "@rollup/rollup-linux-riscv64-musl": "4.40.2", + "@rollup/rollup-linux-s390x-gnu": "4.40.2", + "@rollup/rollup-linux-x64-gnu": "4.40.2", + "@rollup/rollup-linux-x64-musl": "4.40.2", + "@rollup/rollup-win32-arm64-msvc": "4.40.2", + "@rollup/rollup-win32-ia32-msvc": "4.40.2", + "@rollup/rollup-win32-x64-msvc": "4.40.2", "fsevents": "~2.3.2" } }, @@ -23727,9 +23708,9 @@ "license": "CC0-1.0" }, "node_modules/sass": { - "version": "1.87.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.87.0.tgz", - "integrity": "sha512-d0NoFH4v6SjEK7BoX810Jsrhj7IQSYHAHLi/iSpgqKc7LaIDshFRlSg5LOymf9FqQhxEHs2W5ZQXlvy0KD45Uw==", + "version": "1.88.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.88.0.tgz", + "integrity": "sha512-sF6TWQqjFvr4JILXzG4ucGOLELkESHL+I5QJhh7CNaE+Yge0SI+ehCatsXhJ7ymU1hAFcIS3/PBpjdIbXoyVbg==", "dev": true, "license": "MIT", "dependencies": { @@ -23884,9 +23865,9 @@ } }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -25167,16 +25148,16 @@ } }, "node_modules/stylelint-scss": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.11.1.tgz", - "integrity": "sha512-e4rYo0UY+BIMtGeGanghrvHTjcryxgZbyFxUedp8dLFqC4P70aawNdYjRrQxbnKhu3BNr4+lt5e/53tcKXiwFA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.0.tgz", + "integrity": "sha512-U7CKhi1YNkM1pXUXl/GMUXi8xKdhl4Ayxdyceie1nZ1XNIdaUgMV6OArpooWcDzEggwgYD0HP/xIgVJo9a655w==", "dev": true, "license": "MIT", "dependencies": { "css-tree": "^3.0.1", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.35.0", - "mdn-data": "^2.15.0", + "known-css-properties": "^0.36.0", + "mdn-data": "^2.21.0", "postcss-media-query-parser": "^0.2.3", "postcss-resolve-nested-selector": "^0.1.6", "postcss-selector-parser": "^7.1.0", @@ -25189,13 +25170,6 @@ "stylelint": "^16.0.2" } }, - "node_modules/stylelint-scss/node_modules/known-css-properties": { - "version": "0.35.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", - "integrity": "sha512-a/RAk2BfKk+WFGhhOCAYqSiFLc34k8Mt/6NWRI4joER0EYUzXIcFivjjnoD3+XU1DggLn/tZc3DOAgke7l8a4A==", - "dev": true, - "license": "MIT" - }, "node_modules/stylelint-scss/node_modules/mdn-data": { "version": "2.21.0", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz", @@ -25275,25 +25249,25 @@ } }, "node_modules/stylelint/node_modules/file-entry-cache": { - "version": "10.0.8", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.0.8.tgz", - "integrity": "sha512-FGXHpfmI4XyzbLd3HQ8cbUcsFGohJpZtmQRHr8z8FxxtCe2PcpgIlVLwIgunqjvRmXypBETvwhV4ptJizA+Y1Q==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-10.1.0.tgz", + "integrity": "sha512-Et/ex6smi3wOOB+n5mek+Grf7P2AxZR5ueqRUvAAn4qkyatXi3cUC1cuQXVkX0VlzBVsN4BkWJFmY/fYiRTdww==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^6.1.8" + "flat-cache": "^6.1.9" } }, "node_modules/stylelint/node_modules/flat-cache": { - "version": "6.1.8", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.8.tgz", - "integrity": "sha512-R6MaD3nrJAtO7C3QOuS79ficm2pEAy++TgEUD8ii1LVlbcgZ9DtASLkt9B+RZSFCzm7QHDMlXPsqqB6W2Pfr1Q==", + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.9.tgz", + "integrity": "sha512-DUqiKkTlAfhtl7g78IuwqYM+YqvT+as0mY+EVk6mfimy19U79pJCzDZQsnqk3Ou/T6hFXWLGbwbADzD/c8Tydg==", "dev": true, "license": "MIT", "dependencies": { - "cacheable": "^1.8.9", + "cacheable": "^1.9.0", "flatted": "^3.3.3", - "hookified": "^1.8.1" + "hookified": "^1.8.2" } }, "node_modules/stylelint/node_modules/ignore": { @@ -26646,9 +26620,9 @@ } }, "node_modules/vite": { - "version": "5.4.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", - "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", "dependencies": { @@ -26855,9 +26829,9 @@ } }, "node_modules/webpack": { - "version": "5.99.7", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.7.tgz", - "integrity": "sha512-CNqKBRMQjwcmKR0idID5va1qlhrqVUKpovi+Ec79ksW8ux7iS1+A6VqzfZXgVYCFRKl7XL5ap3ZoMpwBJxcg0w==", + "version": "5.99.8", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", + "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", @@ -26993,9 +26967,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", "license": "MIT", "engines": { "node": ">=10.0.0" diff --git a/core/package.json b/core/package.json index e394e9c..d8cffb4 100644 --- a/core/package.json +++ b/core/package.json @@ -128,4 +128,4 @@ "require": "./dist/index.umd.cjs" } } -} \ No newline at end of file +} diff --git a/core/src/assets/images/X.svg b/core/src/assets/images/X.svg new file mode 100644 index 0000000..b3222aa --- /dev/null +++ b/core/src/assets/images/X.svg @@ -0,0 +1,3 @@ + + + diff --git a/core/src/assets/images/retry-mechanism.svg b/core/src/assets/images/retry-mechanism.svg new file mode 100644 index 0000000..9d2de22 --- /dev/null +++ b/core/src/assets/images/retry-mechanism.svg @@ -0,0 +1,3 @@ + + + diff --git a/core/src/assets/scss/_uploadBanner.scss b/core/src/assets/scss/_uploadBanner.scss index 146b07c..78754e2 100644 --- a/core/src/assets/scss/_uploadBanner.scss +++ b/core/src/assets/scss/_uploadBanner.scss @@ -1,15 +1,12 @@ .lm-feed-upload-banner { - position: fixed; - top: 0; - left: 0; - right: 0; - z-index: 1000; - background: var(--lm-feed-info-color); - padding: pxToRem(16); - display: flex; - align-items: center; - justify-content: center; - transition: all 0.3s ease; + &__uploading{ + display: flex; + align-items: center; + gap: pxToRem(12); + font-size: pxToRem(16); + font-weight: 500; + color: var(--lm-feed-dark-color); + } &__container { max-width: pxToRem(1200); @@ -21,76 +18,51 @@ gap: pxToRem(16); } - &__text { - color: var(--lm-feed-light-color); - font-size: pxToRem(16); - font-weight: 500; - margin-right: pxToRem(16); - } - - &__retry-btn, &__cancel-btn { - padding: pxToRem(8) pxToRem(16); + padding: pxToRem(8) pxToRem(12); border: none; - border-radius: pxToRem(6); - font-size: pxToRem(14); - font-weight: 500; + border-radius: pxToRem(20); cursor: pointer; - transition: all 0.2s ease; - - &:hover { - transform: translateY(pxToRem(-1)); - } - - &:active { - transform: translateY(0); - } + font-family: "Roboto"; + font-size: pxToRem(16); + font-weight: 500; + color: var(--lm-feed-dark-color); } &__retry-btn { - background-color: var(--lm-feed-light-color); - color: var(--lm-feed-primary-color); + padding: pxToRem(8) pxToRem(12); + border: none; + border-radius: pxToRem(20); + cursor: pointer; + font-family: "Roboto"; + font-size: pxToRem(16); + font-weight: 500; + color: var(--lm-feed-danger-color); + background-color: #FEE4E2; margin-right: pxToRem(12); - - &:hover { - background-color: var(--lm-feed-light-color); - } } - &__cancel-btn { - background-color: var(--lm-feed-danger-color); - color: var(--lm-feed-light-color); - backdrop-filter: blur(pxToRem(8)); - - &:hover { - background-color: var(--lm-feed-dark-color); - } + &__retry-cancel-btn { + display: flex; + justify-content: center; + align-items: center; + border: none; + border-radius: 100%; + padding: pxToRem(8); } +} - // Error state - &--error { - background: var(--lm-feed-danger-color); - - .lm-feed-upload-banner__retry-btn { - color: var(--lm-feed-light-color); - } - } +.lm-feed-upload-banner-snackbar{ + padding: pxtoRem(16); +} - // Loading animation for the uploading state - &__loading { - display: inline-block; - width: pxToRem(20); - height: pxToRem(20); - margin-right: 12px; - border: pxToRem(2) solid var(--lm-feed-dark-color); - border-radius: 50%; - border-top-color: var(--lm-feed-light-color); - animation: spin 1s linear infinite; - } +.lm-feed-upload-banner-text { + font-size: pxToRem(16); + font-weight: 500; + color: var(--lm-feed-dark-color); } -@keyframes spin { - to { - transform: rotate(360deg); - } +.retry-banner-img{ + margin-right: pxToRem(8); } + diff --git a/core/src/assets/scss/styles.scss b/core/src/assets/scss/styles.scss index 615567e..b50e98a 100644 --- a/core/src/assets/scss/styles.scss +++ b/core/src/assets/scss/styles.scss @@ -29,6 +29,8 @@ @import "tagging"; // Import Create post styles @import "createPost"; +// Import Create upload banner styles +@import "uploadBanner"; // Import Create poll styles @import "createPoll"; diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index c9b5376..30dbf11 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -1,47 +1,104 @@ import React from "react"; import { useLMFeedRetryPost } from "../hooks/useRetryPost"; +import { CircularProgress, Snackbar } from "@mui/material"; +import RetryIcon from "../assets/images/retry-mechanism.svg"; +import CancelIcon from "../assets/images/X.svg"; const LMFeedUploadBanner: React.FC = () => { - const { isVisible, uploadFailed, handleRetry, handleCancel } = useLMFeedRetryPost(); + const { isVisible, uploadFailed, handleRetry, handleCancel } = + useLMFeedRetryPost(); - if (!isVisible) return null; + // if (!isVisible) return null; + + const postingMessage = ( +
+ +
Uploading...
+
+ ); + + const postingAction = ( + + + + ); + + const failedMessage = ( +
Upload Failed.
+ ); + + const failedAction = ( + + + + + ); return ( -
+ <>
{!uploadFailed ? ( - <> -
- Uploading... - - + ) : ( - <> - Upload failed - - - + )}
-
+ ); }; - export default LMFeedUploadBanner; - diff --git a/core/src/components/LMSocialFeed.tsx b/core/src/components/LMSocialFeed.tsx index d8ec4e1..d9298b1 100644 --- a/core/src/components/LMSocialFeed.tsx +++ b/core/src/components/LMSocialFeed.tsx @@ -23,7 +23,6 @@ import { LMCoreCallbacks, LMSDKCallbacksImplementations, } from "../shared/LMSDKCoreCallbacks"; -import LMFeedPostCreationProgressBar from "./LMFeedPostCreationProgressBar"; export interface LMFeedProps extends CustomAgentProviderInterface { children?: React.ReactNode; @@ -144,7 +143,7 @@ function LMSocialFeed({ logoutUser: logoutUser, }} > - + @@ -154,7 +153,6 @@ function LMSocialFeed({ onClose={closeSnackbar} autoHideDuration={3000} /> -
); diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index 39e194a..1142cea 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -454,6 +454,15 @@ export function useCreatePost(): UseCreatePost { } } + function readFileAsBase64(file: File): Promise { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.onload = () => resolve(reader.result as string); + reader.onerror = reject; + reader.readAsDataURL(file); + }); + } + const postFeed = useCallback( async function (customWidgetsData?: Record[]) { try { @@ -477,6 +486,10 @@ export function useCreatePost(): UseCreatePost { } const attachmentResponseArray: Attachment[] = []; + + let localTempId = null; + const tempId = `-${Date.now()}`; + if (pollText.length !== 0) { const pollOtionsList: string[] = pollOptions.map((obj) => obj.text); @@ -513,6 +526,79 @@ export function useCreatePost(): UseCreatePost { } else { if (mediaList.length) { setOpenPostCreationProgressBar!(true); + + localTempId = tempId; + + // First create attachments with local file paths + const localAttachments: Attachment[] = []; + for (const file of mediaList) { + const attachmentType = file.type.includes("image") + ? AttachmentType.IMAGE + : file.type.includes("video") && + mediaUploadMode === LMFeedCreatePostMediaUploadMode.REEL + ? AttachmentType.REEL + : file.type.includes("video") + ? AttachmentType.VIDEO + : file.type.includes("pdf") + ? AttachmentType.DOCUMENT + : AttachmentType.DOCUMENT; + const base64 = await readFileAsBase64(file); + const localAttachment = LMFeedPostAttachment.builder() + .setType(attachmentType) + .setMetadata( + LMFeedPostAttachmentMeta.builder() + .setUrl(base64) // Store local file URL + .setFormat(file?.name?.split(".").slice(-1).toString()) + .setSize(file.size) + .setName(file.name) + .build(), + ) + .build(); + + localAttachments.push(localAttachment); + } + + // Save temporary post with local attachments first + const tempPost = SaveTemporaryPostRequest.builder() + .setTempPost({ + post: createTempPost({ + textContent, + attachments: localAttachments, + selectedTopicIds, + isAnonymousPost, + question: question || "", + tempId, + uuid: currentUser?.sdkClientInfo.uuid || "", + }), + }) + .build(); + + // Save to local storage + await lmFeedclient?.saveTemporaryPost(tempPost); + + // Set the temporary post in the context + setTemporaryPost(tempPost.tempPost.post); + + // Now proceed with AWS upload + try { + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_STARTED, + { tempId }, + ); + + for (const file of mediaList) { + await HelperFunctionsClass.uploadMedia( + file, + currentUser?.sdkClientInfo.uuid || "", + ); + } + } catch (error) { + // Hide banner if upload fails + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + ); + throw error; // Re-throw to handle in the outer catch block + } } for (let index = 0; index < mediaList.length; index++) { const file: File = mediaList[index]; @@ -682,57 +768,6 @@ export function useCreatePost(): UseCreatePost { } } - // Check if post has media attachments - const hasMediaAttachments = attachmentResponseArray.some((attachment) => - isMediaAttachmentType(attachment.type), - ); - let localTempId = null; - if (hasMediaAttachments) { - const tempId = `-${Date.now()}`; - localTempId = tempId; - const tempPost = SaveTemporaryPostRequest.builder() - .setTempPost({ - post: createTempPost({ - textContent, - attachments: attachmentResponseArray, - selectedTopicIds, - isAnonymousPost, - question: question || "", - tempId, - uuid: currentUser?.sdkClientInfo.uuid || "", - }), - }) - .build(); - // Save to local storage - await lmFeedclient?.saveTemporaryPost(tempPost); - - // ... (rest of the code remains the same) - // Set the temporary post in the context - setTemporaryPost(tempPost.tempPost.post); - - // Upload media to AWS S3 - try { - // Show banner only when we start AWS upload - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_STARTED, - { tempId }, - ); - - for (const file of mediaList) { - await HelperFunctionsClass.uploadMedia( - file, - currentUser?.sdkClientInfo.uuid || "", - ); - } - } catch (error) { - // Hide banner if upload fails - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_FAILED, - ); - throw error; // Re-throw to handle in the outer catch block - } - } - const addPostRequestBuilder = AddPostRequest.builder() .setAttachments(attachmentResponseArray) .setText(textContent) @@ -746,6 +781,10 @@ export function useCreatePost(): UseCreatePost { const addPostRequest = addPostRequestBuilder.build(); + // Check if post has media attachments + const hasMediaAttachments = attachmentResponseArray.some((attachment) => + isMediaAttachmentType(attachment.type), + ); const call = await lmFeedclient?.addPost(addPostRequest); if (call?.success) { if (hasMediaAttachments && localTempId) { @@ -813,8 +852,8 @@ export function useCreatePost(): UseCreatePost { if (ogTag) { if ( - !attachmentResponseArray.some( - (attachment) => isMediaAttachmentType(attachment.type) + !attachmentResponseArray.some((attachment) => + isMediaAttachmentType(attachment.type), ) ) { attachmentResponseArray.pop(); diff --git a/core/src/hooks/useLMUserProvider.ts b/core/src/hooks/useLMUserProvider.ts index 5a213a8..aae42ff 100644 --- a/core/src/hooks/useLMUserProvider.ts +++ b/core/src/hooks/useLMUserProvider.ts @@ -130,6 +130,7 @@ export default function useUserProvider( lmFeedclient.setUserInLocalStorage( JSON.stringify(initiateUserCall.data?.user), ); + lmFeedclient.initializeDatabase(); } const memberStateCall: GetMemberStateResponse = diff --git a/core/src/hooks/useRetryPost.ts b/core/src/hooks/useRetryPost.ts index 532eb43..d460894 100644 --- a/core/src/hooks/useRetryPost.ts +++ b/core/src/hooks/useRetryPost.ts @@ -1,9 +1,17 @@ -import { useContext, useEffect, useState } from 'react'; -import { LMFeedCustomActionEvents } from '../shared/constants/lmFeedCustomEventNames'; -import LMFeedGlobalClientProviderContext from '../contexts/LMFeedGlobalClientProviderContext'; -import LMFeedUserProviderContext from '../contexts/LMFeedUserProviderContext'; -import { DeleteTemporaryPostRequest, AddPostRequest, AttachmentType } from '@likeminds.community/feed-js'; -import { HelperFunctionsClass } from '../shared/helper'; +import { useContext, useEffect, useState } from "react"; +import { LMFeedCustomActionEvents } from "../shared/constants/lmFeedCustomEventNames"; +import LMFeedGlobalClientProviderContext from "../contexts/LMFeedGlobalClientProviderContext"; +import LMFeedUserProviderContext from "../contexts/LMFeedUserProviderContext"; +import { + DeleteTemporaryPostRequest, + AddPostRequest, + AttachmentType, + Attachment, + LMFeedPostAttachment, + LMFeedPostAttachmentMeta, +} from "@likeminds.community/feed-js"; +import { HelperFunctionsClass } from "../shared/helper"; +import { LMAppAwsKeys } from "../shared/constants/lmAppAwsKeys"; export interface LMFeedRetryPostHook { isVisible: boolean; @@ -17,8 +25,10 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { const [isVisible, setIsVisible] = useState(false); const [tempPostId, setTempPostId] = useState(null); const [uploadFailed, setUploadFailed] = useState(false); - - const { customEventClient, lmFeedclient } = useContext(LMFeedGlobalClientProviderContext); + + const { customEventClient, lmFeedclient } = useContext( + LMFeedGlobalClientProviderContext, + ); const { currentUser } = useContext(LMFeedUserProviderContext); useEffect(() => { @@ -32,11 +42,11 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { setUploadFailed(true); customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_STARTED, - { tempId } + { tempId }, ); } } catch (error) { - console.error('Error checking temporary post:', error); + console.error("Error checking temporary post:", error); } }; @@ -84,26 +94,29 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { try { const post = await lmFeedclient.getTemporaryPost(); const tempPost = post?.data?.tempPost?.post; - + if (tempPost) { setUploadFailed(false); - + customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_STARTED, - { tempId: tempPost.id } + { tempId: tempPost.id }, ); - try { const mediaList = tempPost.attachments || []; + const attachmentResponseArray: Attachment[] = []; if (!currentUser?.sdkClientInfo?.uuid) { throw new Error("User ID not found"); } for (const attachment of mediaList) { - if (attachment.type === AttachmentType.IMAGE || - attachment.type === AttachmentType.VIDEO || - attachment.type === AttachmentType.DOCUMENT) { + if ( + attachment.type === AttachmentType.IMAGE || + attachment.type === AttachmentType.REEL || + attachment.type === AttachmentType.VIDEO || + attachment.type === AttachmentType.DOCUMENT + ) { if (!attachment.metaData?.url) { - console.warn('No URL found for attachment:', attachment); + console.warn("No URL found for attachment:", attachment); continue; } try { @@ -111,13 +124,98 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { const blob = await response.blob(); const file = new File( [blob], - attachment.metaData.name || 'file', - { type: response.headers.get('content-type') || 'application/octet-stream' } + attachment.metaData.name || "file", + { + type: + response.headers.get("content-type") || + "application/octet-stream", + }, ); - await HelperFunctionsClass.uploadMedia( + (await HelperFunctionsClass.uploadMedia( file, - currentUser.sdkClientInfo.uuid - ); + currentUser?.sdkClientInfo.uuid || "", + )) as never; + + const uploadedFileKey = `https://${LMAppAwsKeys.bucketName}.s3.${LMAppAwsKeys.region}.amazonaws.com/${`files/post/${currentUser?.sdkClientInfo.uuid || ""}/${file.name}`}`; + attachment.metaData.url = uploadedFileKey; + + switch (attachment.type) { + case AttachmentType.IMAGE: { + attachmentResponseArray.push( + LMFeedPostAttachment.builder() + .setType(AttachmentType.IMAGE) + .setMetadata( + LMFeedPostAttachmentMeta.builder() + .setUrl(uploadedFileKey) + .setFormat( + file?.name?.split(".").slice(-1).toString(), + ) + .setSize(file.size) + .setName(file.name) + .build(), + ) + .build(), + ); + break; + } + case AttachmentType.VIDEO: { + attachmentResponseArray.push( + LMFeedPostAttachment.builder() + .setType(AttachmentType.VIDEO) + .setMetadata( + LMFeedPostAttachmentMeta.builder() + .setUrl(uploadedFileKey) + .setFormat( + file?.name?.split(".").slice(-1).toString(), + ) + .setSize(file.size) + .setName(file.name) + .setDuration(10) + .build(), + ) + .build(), + ); + break; + } + case AttachmentType.DOCUMENT: { + attachmentResponseArray.push( + LMFeedPostAttachment.builder() + .setType(AttachmentType.DOCUMENT) + .setMetadata( + LMFeedPostAttachmentMeta.builder() + .setUrl(uploadedFileKey) + .setFormat( + file?.name?.split(".").slice(-1).toString(), + ) + .setSize(file.size) + .setName(file.name) + .build(), + ) + .build(), + ); + break; + } + case AttachmentType.REEL: { + // New case for attachmentType 11 (Reels) + attachmentResponseArray.push( + LMFeedPostAttachment.builder() + .setType(AttachmentType.REEL) + .setMetadata( + LMFeedPostAttachmentMeta.builder() + .setUrl(uploadedFileKey) + .setFormat( + file?.name?.split(".").slice(-1).toString(), + ) + .setSize(file.size) + .setName(file.name) + .setDuration(10) // Assuming duration is applicable to reels + .build(), + ) + .build(), + ); + break; + } + } } catch (error) { continue; } @@ -125,9 +223,9 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { continue; } } - + const addPostRequest = AddPostRequest.builder() - .setAttachments(tempPost.attachments || []) + .setAttachments(attachmentResponseArray) .setText(tempPost.text || "") .setTopicIds(tempPost.topics || []) .setTempId(Date.now().toString()) @@ -137,8 +235,10 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { addPostRequest.setHeading(tempPost.heading); } - const addPostResponse = await lmFeedclient.addPost(addPostRequest.build()); - + const addPostResponse = await lmFeedclient.addPost( + addPostRequest.build(), + ); + console.log("5"); if (addPostResponse?.success) { const deleteRequest = DeleteTemporaryPostRequest.builder() .setTemporaryPostId(tempPostId) @@ -148,13 +248,13 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATED, - {} + {}, ); } } catch (error) { customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, - {} + {}, ); } } @@ -162,7 +262,7 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { console.error("Error getting temporary post:", error); customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, - {} + {}, ); } } @@ -201,4 +301,3 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { handleCancel, }; }; - diff --git a/core/src/shared/customEvents.ts b/core/src/shared/customEvents.ts index 70b61a2..d6d3c37 100644 --- a/core/src/shared/customEvents.ts +++ b/core/src/shared/customEvents.ts @@ -67,8 +67,6 @@ export class LMFeedCustomEvents { postCreationActionAndDataStore: this.postCreationActionAndDataStore, notificationsActionsAndDataStore: this.notificationsActionsAndDataStore, }; - // return obj; - // console.log(fn.prototype); return fn.bind(obj); } private registerEvent(eventName: string) { diff --git a/core/src/shared/utils/createTempPost.ts b/core/src/shared/utils/createTempPost.ts index 7b721c5..379221e 100644 --- a/core/src/shared/utils/createTempPost.ts +++ b/core/src/shared/utils/createTempPost.ts @@ -1,6 +1,8 @@ +import { Attachment } from "../types/models/attachment"; + interface CreateTempPostParams { textContent: string; - attachments: any[]; + attachments: Attachment[]; selectedTopicIds: string[]; isAnonymousPost: boolean; question?: string; @@ -18,7 +20,7 @@ export const createTempPost = ({ uuid, }: CreateTempPostParams) => { const currentTime = Date.now(); - + return { id: tempId, text: textContent, From 62ed6289ae5134ca80f5a26d4af3790444b450c4 Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Thu, 15 May 2025 02:36:57 +0530 Subject: [PATCH 15/22] fixes --- core/package-lock.json | 290 ++++++++++----------- core/src/assets/scss/_responsive.scss | 7 +- core/src/assets/scss/_uploadBanner.scss | 13 + core/src/components/LMFeedUploadBanner.tsx | 39 ++- core/src/hooks/useRetryPost.ts | 8 +- 5 files changed, 192 insertions(+), 165 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index 721bc25..a6bd953 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -5687,52 +5687,6 @@ "buffer": "^6.0.3" } }, - "node_modules/@keyv/serialize/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/@keyv/serialize/node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/@leichtgewicht/ip-codec": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", @@ -6320,6 +6274,15 @@ "node": "^8.13.0 || >=10.10.0" } }, + "node_modules/@likeminds.community/feed-js/node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@likeminds.community/feed-js/node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -6365,6 +6328,21 @@ "@firebase/util": "1.9.3" } }, + "node_modules/@likeminds.community/feed-js/node_modules/form-data": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", + "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/@likeminds.community/feed-js/node_modules/long": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", @@ -9740,9 +9718,9 @@ "license": "MIT" }, "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -11026,6 +11004,44 @@ "node": ">= 10.0.0" } }, + "node_modules/aws-sdk/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "license": "MIT", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/aws-sdk/node_modules/events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", + "license": "MIT", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/aws-sdk/node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "license": "BSD-3-Clause" + }, + "node_modules/aws-sdk/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/aws-sdk/node_modules/sax": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", + "license": "ISC" + }, "node_modules/aws-sdk/node_modules/uuid": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz", @@ -11580,14 +11596,28 @@ } }, "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "MIT", "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" } }, "node_modules/buffer-from": { @@ -12849,9 +12879,9 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", - "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", + "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -12931,12 +12961,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/deep-equal/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -13537,12 +13561,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-get-iterator/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/es-iterator-helpers": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", @@ -15188,12 +15206,12 @@ "license": "MIT" }, "node_modules/events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", "engines": { - "node": ">=0.4.x" + "node": ">=0.8.x" } }, "node_modules/execa": { @@ -15934,15 +15952,15 @@ } }, "node_modules/form-data": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.2.tgz", - "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz", + "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.12" + "mime-types": "^2.1.35" }, "engines": { "node": ">= 6" @@ -16579,6 +16597,12 @@ "wbuf": "^1.1.0" } }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, "node_modules/hpack.js/node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -16889,9 +16913,24 @@ } }, "node_modules/ieee754": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "license": "BSD-3-Clause" }, "node_modules/ignore": { @@ -17586,9 +17625,9 @@ } }, "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, "node_modules/isexe": { @@ -19168,21 +19207,6 @@ } } }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.3.tgz", - "integrity": "sha512-q5YBMeWy6E2Un0nMGWMgI65MAKtaylxfNJGJxpGh45YDciZB4epbWpaAfImil6CPAPTYB4sh0URQNDRIZG5F2w==", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "es-set-tostringtag": "^2.1.0", - "mime-types": "^2.1.35" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/jsdom/node_modules/tr46": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", @@ -23630,12 +23654,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -23672,12 +23690,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safe-push-apply/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/safe-regex-test": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", @@ -23800,9 +23812,9 @@ } }, "node_modules/sax": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", "license": "ISC" }, "node_modules/saxes": { @@ -24266,12 +24278,6 @@ "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", "license": "MIT" }, - "node_modules/sitemap/node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" - }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -25671,13 +25677,13 @@ "license": "MIT" }, "node_modules/synckit": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", - "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.5.tgz", + "integrity": "sha512-frqvfWyDA5VPVdrWfH24uM6SI/O8NLpVbIIJxb8t/a3YGsp4AW9CYgSKC0OaSEfexnp7Y1pVh2Y6IHO8ggGDmA==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.3", + "@pkgr/core": "^0.2.4", "tslib": "^2.8.1" }, "engines": { @@ -25869,9 +25875,9 @@ } }, "node_modules/terser": { - "version": "5.39.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.0.tgz", - "integrity": "sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==", + "version": "5.39.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", + "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", @@ -26957,15 +26963,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/@types/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "node_modules/webpack-dev-server/node_modules/ws": { "version": "8.18.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", @@ -27056,15 +27053,6 @@ "node": ">=4.0" } }, - "node_modules/webpack/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", @@ -27198,12 +27186,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-builtin-type/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "license": "MIT" - }, "node_modules/which-collection": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", @@ -27760,12 +27742,6 @@ "xml-js": "bin/cli.js" } }, - "node_modules/xml-js/node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" - }, "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", diff --git a/core/src/assets/scss/_responsive.scss b/core/src/assets/scss/_responsive.scss index a122257..e44c268 100644 --- a/core/src/assets/scss/_responsive.scss +++ b/core/src/assets/scss/_responsive.scss @@ -39,8 +39,8 @@ $breakpoint-lg: 1200px; flex-grow: initial; width: 100%; } - .lm-member, .lm-sidenav, .lm-moderation-header, .moderation-separator, .edit-permission-web-view{ - display: none; + .lm-member, .lm-sidenav, .lm-moderation-header, .moderation-separator, .edit-permission-web-view, .lm-feed-upload-banner-snackbar{ + display: none !important; } .lm-feed-wrapper__card { border-radius: 0; @@ -52,6 +52,9 @@ $breakpoint-lg: 1200px; .moderation-mobile-tab-wrapper, .edit-permission-mobile-view, .lm-mobile-view-toggle-bar{ display: block; } + .mobile-upload-banner{ + display: flex; + } .lm-header-notification{ padding-left: 3rem; } diff --git a/core/src/assets/scss/_uploadBanner.scss b/core/src/assets/scss/_uploadBanner.scss index 78754e2..01196b8 100644 --- a/core/src/assets/scss/_uploadBanner.scss +++ b/core/src/assets/scss/_uploadBanner.scss @@ -66,3 +66,16 @@ margin-right: pxToRem(8); } +.mobile-upload-banner{ + display: flex; + justify-content: space-between; + align-items: center; + background-color: var(--lm-feed-light-color); + width: 100%; + padding: pxToRem(16); + display: none; +} + +.lm-feed-mobile-upload-banner{ + display: flex; +} diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index 30dbf11..9a2965a 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -8,7 +8,7 @@ const LMFeedUploadBanner: React.FC = () => { const { isVisible, uploadFailed, handleRetry, handleCancel } = useLMFeedRetryPost(); - // if (!isVisible) return null; + if (!isVisible) return null; const postingMessage = (
@@ -53,6 +53,43 @@ const LMFeedUploadBanner: React.FC = () => { return ( <>
+ {!uploadFailed ? ( +
+
+ +
Uploading...
+
+ +
+ ) : ( +
+
Upload Failed.
+
+ + +
+
+ )} {!uploadFailed ? ( { setTempPostId(tempId); setIsVisible(true); setUploadFailed(true); - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATION_STARTED, - { tempId }, - ); } } catch (error) { console.error("Error checking temporary post:", error); @@ -56,6 +52,7 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { const customEvent = event as CustomEvent; setTempPostId(customEvent.detail.tempId); setIsVisible(true); + setUploadFailed(false); }; const handlePostCreated = () => { @@ -238,7 +235,6 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { const addPostResponse = await lmFeedclient.addPost( addPostRequest.build(), ); - console.log("5"); if (addPostResponse?.success) { const deleteRequest = DeleteTemporaryPostRequest.builder() .setTemporaryPostId(tempPostId) @@ -281,6 +277,7 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { setTempPostId(null); setIsVisible(false); + setUploadFailed(false); customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_FAILED, @@ -289,6 +286,7 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { console.error("Error during cancellation:", error); setTempPostId(null); setIsVisible(false); + setUploadFailed(false); } } }; From e60d5ae7c3b29f0589a7446e7552025e133d30cc Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Thu, 15 May 2025 15:08:03 +0530 Subject: [PATCH 16/22] retry in qna feed --- core/package-lock.json | 40 +++++++++---------- .../src/components/LMQNAFeedUniversalFeed.tsx | 2 + core/src/hooks/useCreatePost.ts | 7 ++++ core/src/shared/components/LMFeedTextArea.tsx | 13 ++++-- 4 files changed, 38 insertions(+), 24 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index a6bd953..97e89b2 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -10143,17 +10143,17 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.13.tgz", - "integrity": "sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.14.tgz", + "integrity": "sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.13", + "@babel/parser": "^7.27.2", + "@vue/shared": "3.5.14", "entities": "^4.5.0", "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" + "source-map-js": "^1.2.1" } }, "node_modules/@vue/compiler-core/node_modules/entities": { @@ -10170,14 +10170,14 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.13.tgz", - "integrity": "sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.14.tgz", + "integrity": "sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.13", - "@vue/shared": "3.5.13" + "@vue/compiler-core": "3.5.14", + "@vue/shared": "3.5.14" } }, "node_modules/@vue/language-core": { @@ -10207,9 +10207,9 @@ } }, "node_modules/@vue/shared": { - "version": "3.5.13", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.13.tgz", - "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==", + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.14.tgz", + "integrity": "sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==", "dev": true, "license": "MIT" }, @@ -13355,9 +13355,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.152", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.152.tgz", - "integrity": "sha512-xBOfg/EBaIlVsHipHl2VdTPJRSvErNUaqW8ejTq5OlOlIYx1wOllCHsAvAIrr55jD1IYEfdR86miUEt8H5IeJg==", + "version": "1.5.154", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.154.tgz", + "integrity": "sha512-G4VCFAyKbp1QJ+sWdXYIRYsPGvlV5sDACfCmoMFog3rjm1syLhI41WXm/swZypwCIWIm4IFLWzHY14joWMQ5Fw==", "license": "ISC" }, "node_modules/emittery": { @@ -22431,9 +22431,9 @@ "license": "MIT" }, "node_modules/protobufjs": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.1.tgz", - "integrity": "sha512-3qx3IRjR9WPQKagdwrKjO3Gu8RgQR2qqw+1KnigWhoVjFqegIj1K3bP11sGqhxrO46/XL7lekuG4jmjL+4cLsw==", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.2.tgz", + "integrity": "sha512-f2ls6rpO6G153Cy+o2XQ+Y0sARLOZ17+OGVLHrc3VUKcLHYKEKWbkSujdBWQXM7gKn5NTfp0XnRPZn1MIu8n9w==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { diff --git a/core/src/components/LMQNAFeedUniversalFeed.tsx b/core/src/components/LMQNAFeedUniversalFeed.tsx index 631bb55..6b17fd0 100644 --- a/core/src/components/LMQNAFeedUniversalFeed.tsx +++ b/core/src/components/LMQNAFeedUniversalFeed.tsx @@ -14,6 +14,7 @@ import LMFeedGlobalClientProviderContext from "../contexts/LMFeedGlobalClientPro import { LMFeedNotificationAnalytics } from "../shared/enums/lmNotificationAnalytics"; import LMQNAFeedCreatePost from "./LMQNAFeedCreatePost"; import LMQNAFeedPosts from "./LMQNAFeedPosts"; +import LMFeedUploadBanner from "./LMFeedUploadBanner"; interface LMFeedUniversalFeedProps { PostView?: React.FC; @@ -112,6 +113,7 @@ const LMQNAFeedUniversalFeed = (props: LMFeedUniversalFeedProps) => { return (
+ {CustomComponents?.CustomTopicDropDown ? ( CustomComponents.CustomTopicDropDown diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index 1142cea..b98d34c 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -1185,6 +1185,13 @@ export function useCreatePost(): UseCreatePost { setQuestion(temporaryPost.heading); } }, [temporaryPost]); + + useEffect(() => { + if (openCreatePostDialog) { + resetStates(); + } + }, [openCreatePostDialog]); + return { postText: text, setPostText, diff --git a/core/src/shared/components/LMFeedTextArea.tsx b/core/src/shared/components/LMFeedTextArea.tsx index 80ed4e7..8136f8e 100644 --- a/core/src/shared/components/LMFeedTextArea.tsx +++ b/core/src/shared/components/LMFeedTextArea.tsx @@ -44,10 +44,15 @@ const LMFeedTextArea = () => { }, [textFieldRef]); useEffect(() => { - if (temporaryPost && textFieldRef?.current) { - textFieldRef.current.innerHTML = convertTextToHTML( - temporaryPost.text, - ).innerHTML; + if (textFieldRef?.current) { + if (temporaryPost) { + textFieldRef.current.innerHTML = convertTextToHTML( + temporaryPost.text, + ).innerHTML; + } else { + // Explicitly clear the text area for new posts or when temporaryPost is null + textFieldRef.current.innerHTML = ""; + } } setCursorToTheEnd(); // eslint-disable-next-line react-hooks/exhaustive-deps From a5047b0e5b61143e5ad3d8e616ddb8622a0b5cd3 Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Tue, 3 Jun 2025 13:09:44 +0530 Subject: [PATCH 17/22] version code updated --- core/src/shared/getClient.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/shared/getClient.ts b/core/src/shared/getClient.ts index a1093d5..2b8ef30 100644 --- a/core/src/shared/getClient.ts +++ b/core/src/shared/getClient.ts @@ -3,7 +3,7 @@ import { LMFeedClient } from "@likeminds.community/feed-js"; export function initiateFeedClient() { const lmFeedClient = LMFeedClient.Builder() .setPlatformCode("rt") - .setVersionCode(24) + .setVersionCode(25) .build(); return lmFeedClient; } From 605c706f0871b1a3191f23c86c8ee032db2483d0 Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Tue, 3 Jun 2025 17:05:32 +0530 Subject: [PATCH 18/22] minor fix --- core/src/hooks/useRetryPost.ts | 44 ++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/core/src/hooks/useRetryPost.ts b/core/src/hooks/useRetryPost.ts index 3a99107..1fc57ae 100644 --- a/core/src/hooks/useRetryPost.ts +++ b/core/src/hooks/useRetryPost.ts @@ -221,31 +221,33 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { } } - const addPostRequest = AddPostRequest.builder() - .setAttachments(attachmentResponseArray) - .setText(tempPost.text || "") - .setTopicIds(tempPost.topics || []) - .setTempId(Date.now().toString()) - .setIsAnonymous(tempPost.isAnonymous || false); + if (attachmentResponseArray.length > 0) { + const addPostRequest = AddPostRequest.builder() + .setAttachments(attachmentResponseArray) + .setText(tempPost.text || "") + .setTopicIds(tempPost.topics || []) + .setTempId(Date.now().toString()) + .setIsAnonymous(tempPost.isAnonymous || false); - if (tempPost.heading) { - addPostRequest.setHeading(tempPost.heading); - } + if (tempPost.heading) { + addPostRequest.setHeading(tempPost.heading); + } - const addPostResponse = await lmFeedclient.addPost( - addPostRequest.build(), - ); - if (addPostResponse?.success) { - const deleteRequest = DeleteTemporaryPostRequest.builder() - .setTemporaryPostId(tempPostId) - .build(); + const addPostResponse = await lmFeedclient.addPost( + addPostRequest.build(), + ); + if (addPostResponse?.success) { + const deleteRequest = DeleteTemporaryPostRequest.builder() + .setTemporaryPostId(tempPostId) + .build(); - await lmFeedclient.deleteTemporaryPost(deleteRequest); + await lmFeedclient.deleteTemporaryPost(deleteRequest); - customEventClient?.dispatchEvent( - LMFeedCustomActionEvents.POST_CREATED, - {}, - ); + customEventClient?.dispatchEvent( + LMFeedCustomActionEvents.POST_CREATED, + {}, + ); + } } } catch (error) { customEventClient?.dispatchEvent( From f6196dee1dc1dd22b9253224c54cfdfea35394c0 Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Wed, 4 Jun 2025 11:50:45 +0530 Subject: [PATCH 19/22] height and width for attachment meta --- core/src/hooks/useCreatePost.ts | 47 ++++++++++++++++++++++++--------- core/src/hooks/useRetryPost.ts | 6 +++++ core/src/shared/utils.ts | 30 +++++++++++++++++++++ 3 files changed, 71 insertions(+), 12 deletions(-) diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index b98d34c..7e944f2 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -40,7 +40,7 @@ import { ComponentDelegatorListener } from "../shared/types/cutomCallbacks/callb import { LMAppAwsKeys } from "../shared/constants/lmAppAwsKeys"; import { numberToPollMultipleSelectState } from "../shared/utils"; import { PollType } from "../shared/enums/ImPollType"; -import { getDisplayMessage } from "../shared/utils"; +import { getDisplayMessage, getVideoDimensions, getImageDimensions } from "../shared/utils"; import { OneArgVoidReturns, @@ -524,13 +524,12 @@ export function useCreatePost(): UseCreatePost { .build(), ); } else { + // First create attachments with local file paths + const localAttachments: Attachment[] = []; if (mediaList.length) { setOpenPostCreationProgressBar!(true); localTempId = tempId; - - // First create attachments with local file paths - const localAttachments: Attachment[] = []; for (const file of mediaList) { const attachmentType = file.type.includes("image") ? AttachmentType.IMAGE @@ -543,16 +542,34 @@ export function useCreatePost(): UseCreatePost { ? AttachmentType.DOCUMENT : AttachmentType.DOCUMENT; const base64 = await readFileAsBase64(file); + + const LMFeedPostAttachmentMetaBuilder = + LMFeedPostAttachmentMeta.builder() + .setUrl(base64) // Store local file URL + .setFormat(file?.name?.split(".").slice(-1).toString()) + .setSize(file.size) + .setName(file.name); + + if (attachmentType === AttachmentType.IMAGE) { + const { width, height } = await getImageDimensions(file); + LMFeedPostAttachmentMetaBuilder.setWidth(width).setHeight( + height, + ); + } + + if ( + attachmentType === AttachmentType.VIDEO || + attachmentType === AttachmentType.REEL + ) { + const { width, height } = await getVideoDimensions(file); + LMFeedPostAttachmentMetaBuilder.setWidth(width).setHeight( + height, + ); + } + const localAttachment = LMFeedPostAttachment.builder() .setType(attachmentType) - .setMetadata( - LMFeedPostAttachmentMeta.builder() - .setUrl(base64) // Store local file URL - .setFormat(file?.name?.split(".").slice(-1).toString()) - .setSize(file.size) - .setName(file.name) - .build(), - ) + .setMetadata(LMFeedPostAttachmentMetaBuilder.build()) .build(); localAttachments.push(localAttachment); @@ -632,6 +649,8 @@ export function useCreatePost(): UseCreatePost { .setFormat(file?.name?.split(".").slice(-1).toString()) .setSize(file.size) .setName(file.name) + .setHeight(localAttachments[index]?.metaData?.height || 0) + .setWidth(localAttachments[index]?.metaData?.width || 0) .build(), ) .build(), @@ -649,6 +668,8 @@ export function useCreatePost(): UseCreatePost { .setSize(file.size) .setName(file.name) .setDuration(10) + .setHeight(localAttachments[index]?.metaData?.height || 0) + .setWidth(localAttachments[index]?.metaData?.width || 0) .build(), ) .build(), @@ -683,6 +704,8 @@ export function useCreatePost(): UseCreatePost { .setSize(file.size) .setName(file.name) .setDuration(10) // Assuming duration is applicable to reels + .setHeight(localAttachments[index]?.metaData?.height || 0) + .setWidth(localAttachments[index]?.metaData?.width || 0) .build(), ) .build(), diff --git a/core/src/hooks/useRetryPost.ts b/core/src/hooks/useRetryPost.ts index 1fc57ae..4e1b860 100644 --- a/core/src/hooks/useRetryPost.ts +++ b/core/src/hooks/useRetryPost.ts @@ -149,6 +149,8 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { ) .setSize(file.size) .setName(file.name) + .setHeight(attachment.metaData.height || 0) + .setWidth(attachment.metaData.width || 0) .build(), ) .build(), @@ -168,6 +170,8 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { .setSize(file.size) .setName(file.name) .setDuration(10) + .setHeight(attachment.metaData.height || 0) + .setWidth(attachment.metaData.width || 0) .build(), ) .build(), @@ -206,6 +210,8 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { .setSize(file.size) .setName(file.name) .setDuration(10) // Assuming duration is applicable to reels + .setHeight(attachment.metaData.height || 0) + .setWidth(attachment.metaData.width || 0) .build(), ) .build(), diff --git a/core/src/shared/utils.ts b/core/src/shared/utils.ts index c166418..3067534 100644 --- a/core/src/shared/utils.ts +++ b/core/src/shared/utils.ts @@ -649,3 +649,33 @@ export function formatTimestamp(timestamp: number): string { }; return date.toLocaleDateString("en-GB", options).replace(",", ""); } + +export function getImageDimensions( + file: File, + ): Promise<{ width: number; height: number }> { + return new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => { + resolve({ width: img.width, height: img.height }); + }; + img.onerror = reject; + img.src = URL.createObjectURL(file); + }); + } + + export function getVideoDimensions( + file: File, + ): Promise<{ width: number; height: number }> { + return new Promise((resolve, reject) => { + const video = document.createElement("video"); + video.preload = "metadata"; + + video.onloadedmetadata = () => { + resolve({ width: video.videoWidth, height: video.videoHeight }); + URL.revokeObjectURL(video.src); + }; + + video.onerror = reject; + video.src = URL.createObjectURL(file); + }); + } From f269f5629da1d40be403de01151a5066ca17092a Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Wed, 4 Jun 2025 14:54:52 +0530 Subject: [PATCH 20/22] peer testing bugs --- core/package-lock.json | 618 +++++++++++++++++--------------- core/src/hooks/useCreatePost.ts | 80 +++-- 2 files changed, 377 insertions(+), 321 deletions(-) diff --git a/core/package-lock.json b/core/package-lock.json index 97e89b2..5add74e 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1260,30 +1260,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.2.tgz", - "integrity": "sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.27.5.tgz", + "integrity": "sha512-KiRAp/VoJaWkkte84TvUd9qjdbZAdiqyvMxrGl1N6vzFogKmaLgoM3L1kgtLicp2HP5fBJS8JrZKLVIZGVJAVg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.1.tgz", - "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.27.4.tgz", + "integrity": "sha512-bXYxrXFubeYdvB0NhD/NBB3Qi6aZeV20GOWVI47t2dkecCEoneR4NPVcb7abpXDEvejgrUfFtG6vG/zxAKmg+g==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helpers": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.27.3", + "@babel/helpers": "^7.27.4", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.27.4", + "@babel/types": "^7.27.3", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -1314,9 +1314,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.1.tgz", - "integrity": "sha512-q8rjOuadH0V6Zo4XLMkJ3RMQ9MSBqwaDByyYB0izsYdaIWGNLmEblbCOf1vyFHICcg16CD7Fsi51vcQnYxmt6Q==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.27.5.tgz", + "integrity": "sha512-HLkYQfRICudzcOtjGwkPvGc5nF1b4ljLZh1IRDj50lRZ718NAKVgQpIAUX8bfg6u/yuSKY3L7E0YzIV+OxrB8Q==", "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", @@ -1350,13 +1350,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.1.tgz", - "integrity": "sha512-UnJfnIpc/+JO0/+KRVQNGU+y5taA5vCbwN8+azkX6beii/ZF+enZJSOKo11ZSzGJjlNfJHfQtmQT8H+9TXPG2w==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.5.tgz", + "integrity": "sha512-ZGhA37l0e/g2s1Cnzdix0O3aLYm66eF8aufiVteOgnwxgnRP8GoyMj7VWsgWnQbVKXyge7hqrFh2K2TQM6t1Hw==", "license": "MIT", "dependencies": { - "@babel/parser": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/parser": "^7.27.5", + "@babel/types": "^7.27.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -1366,12 +1366,12 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.1.tgz", - "integrity": "sha512-WnuuDILl9oOBbKnb4L+DyODx7iC47XfzmNCpTttFsSp6hTG7XZxu60+4IO+2/hPfcGOoKbFiwoI/+zwARbNQow==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -1501,14 +1501,14 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.1.tgz", - "integrity": "sha512-9yHn519/8KvTU5BjTVEEeIM3w9/2yXNKoD82JifINImhpKkARMJKPP59kLo+BafpdN5zgNeIcS4jsGDmd3l58g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.27.3.tgz", + "integrity": "sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/traverse": "^7.27.3" }, "engines": { "node": ">=6.9.0" @@ -1627,25 +1627,25 @@ } }, "node_modules/@babel/helpers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.1.tgz", - "integrity": "sha512-FCvFTm0sWV8Fxhpp2McP5/W53GPllQ9QeQ7SiqGWjMf/LVG07lFa5+pgK05IRhVwtvafT22KF+ZSnM9I545CvQ==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.4.tgz", + "integrity": "sha512-Y+bO6U+I7ZKaM5G5rDUZiYfUvQPUibYmAFe7EnKdnKBbVXDZxvp+MWOH5gYciY0EPk4EScsuFMQBbEfpdRKSCQ==", "license": "MIT", "dependencies": { - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.2.tgz", - "integrity": "sha512-QYLs8299NA7WM/bZAdp+CviYYkVoYXlDW2rzliy3chxd1PQjej7JORuMJDJXJUb9g0TT+B99EwaVLKmX+sPXWw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.5.tgz", + "integrity": "sha512-OsQd175SxWkGlzbny8J3K8TnnDD0N3lrIUtB92xwyRpzaenGZhxDvxN/JgU00U3CDZNj9tPuDJ5H0WS4Nt3vKg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^7.27.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -2196,9 +2196,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.1.tgz", - "integrity": "sha512-QEcFlMl9nGTgh1rn2nIeU5bkfb9BAjaQcWbiP4LvKxUot52ABcTkpcyJ7f2Q2U2RuQ84BNLgts3jRme2dTx6Fw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.27.5.tgz", + "integrity": "sha512-JF6uE2s67f0y2RZcm2kpAUEbD50vH62TyWVebxwHAlbSdM49VqPz8t4a1uIjp4NIOIZ4xzLfjY5emt/RCyC7TQ==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -2279,9 +2279,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.1.tgz", - "integrity": "sha512-ttDCqhfvpE9emVkXbPD8vyxxh4TWYACVybGkDj+oReOGwnp066ITEivDlLwe0b1R0+evJ13IXQuLNB5w1fhC5Q==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.27.3.tgz", + "integrity": "sha512-s4Jrok82JpiaIprtY2nHsYmrThKvvwgHwjgd7UMiYhZaN0asdXNLr0y+NjTfkA7SyQE5i2Fb7eawUOZmLvyqOA==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -2622,14 +2622,14 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.2.tgz", - "integrity": "sha512-AIUHD7xJ1mCrj3uPozvtngY3s0xpv7Nu7DoUSnzNY6Xam1Cy4rUznR//pvMHOhQ4AvbCexhbqXCtpxGHOGOO6g==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.27.3.tgz", + "integrity": "sha512-7ZZtznF9g4l2JCImCo5LNKFHB5eXnN39lLtLY5Tg+VkR0jwOt7TBciMckuiQIOIW7L5tkQOCh3bVGYeXgMx52Q==", "license": "MIT", "dependencies": { "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.27.1", + "@babel/plugin-transform-destructuring": "^7.27.3", "@babel/plugin-transform-parameters": "^7.27.1" }, "engines": { @@ -2862,9 +2862,9 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.1.tgz", - "integrity": "sha512-B19lbbL7PMrKr52BNPjCqg1IyNUIjTcxKj8uX9zHO+PmWN93s19NDr/f69mIkEp2x9nmDJ08a7lgHaTTzvW7mw==", + "version": "7.27.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.27.5.tgz", + "integrity": "sha512-uhB8yHerfe3MWnuLAhEbeQ4afVoqv8BQsPqrTv7e/jZ9y00kJL6l9a/f4OWaKxotmjzewfEyXE1vgDJenkQ2/Q==", "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.27.1" @@ -2908,9 +2908,9 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.1.tgz", - "integrity": "sha512-TqGF3desVsTcp3WrJGj4HfKokfCXCLcHpt4PJF0D8/iT6LPd9RS82Upw3KPeyr6B22Lfd3DO8MVrmp0oRkUDdw==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.27.4.tgz", + "integrity": "sha512-D68nR5zxU64EUzV8i7T3R5XP0Xhrou/amNnddsRQssx6GrTLdZl1rLxyjtVZBd+v/NVX4AbTPOB5aU8thAZV1A==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.27.1", @@ -3240,18 +3240,18 @@ } }, "node_modules/@babel/runtime": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.1.tgz", - "integrity": "sha512-1x3D2xEk2fRo3PAhwQwu5UubzgiVWSXTBfWpVd2Mx2AzRqJuDJCsgaDVZ7HB5iGzDW1Hl1sWN2mFyKjmR9uAog==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.4.tgz", + "integrity": "sha512-t3yaEOuGu9NlIZ+hIeGbBjFtZT7j2cb2tg0fuaJKeGotchRjjLfrBA9Kwf8quhpP1EUuxModQg04q/mBwyg8uA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.1.tgz", - "integrity": "sha512-909rVuj3phpjW6y0MCXAZ5iNeORePa6ldJvp2baWGcTjwqbBDDz6xoS5JHJ7lS88NlwLYj07ImL/8IUMtDZzTA==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.4.tgz", + "integrity": "sha512-H7QhL0ucCGOObsUETNbB2PuzF4gAvN8p32P6r91bX7M/hk4bx+3yz2hTwHL9d/Efzwu1upeb4/cd7oSxCzup3w==", "license": "MIT", "dependencies": { "core-js-pure": "^3.30.2" @@ -3275,16 +3275,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.1.tgz", - "integrity": "sha512-ZCYtZciz1IWJB4U61UPu4KEaqyfj+r5T1Q5mqPo+IBpcG9kHv30Z0aD8LXPgC1trYa6rK0orRyAhqUgk4MjmEg==", + "version": "7.27.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.4.tgz", + "integrity": "sha512-oNcu2QbHqts9BtOWJosOVJapWjBDSxGCpFvikNR5TGDYDQf3JwpIoMzIKrvfoti93cLfPJEG4tH9SPVeyCGgdA==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.27.1", - "@babel/parser": "^7.27.1", - "@babel/template": "^7.27.1", - "@babel/types": "^7.27.1", + "@babel/generator": "^7.27.3", + "@babel/parser": "^7.27.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.27.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -3293,9 +3293,9 @@ } }, "node_modules/@babel/types": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.1.tgz", - "integrity": "sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==", + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.3.tgz", + "integrity": "sha512-Y1GkI4ktrtvmawoSq+4FCVHNryea6uR+qUQy0AGxLSsjCX0nVmkYQMBLHDkXZuo5hGx7eYdnIaslsdBFm7zbUw==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", @@ -3312,9 +3312,9 @@ "license": "MIT" }, "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "dev": true, "funding": [ { @@ -3331,13 +3331,13 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", "dev": true, "funding": [ { @@ -3355,9 +3355,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.2.tgz", - "integrity": "sha512-EUos465uvVvMJehckATTlNqGj4UJWkTmdWuDMjqvSUkjGpmOyFZBVwb4knxCm/k2GMTXY+c/5RkdndzFYWeX5A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", "dev": true, "funding": [ { @@ -3374,8 +3374,8 @@ "node": ">=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" } }, "node_modules/@csstools/normalize.css": { @@ -4885,28 +4885,28 @@ "license": "Apache-2.0" }, "node_modules/@floating-ui/core": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.0.tgz", - "integrity": "sha512-FRdBLykrPPA6P76GGGqlex/e7fbe0F1ykgxHYNXQsH/iTEtjMj/f9bpY5oQqbjt5VgZvgz/uKXbGuROijh3VLA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.1.tgz", + "integrity": "sha512-azI0DrjMMfIug/ExbBaeDVJXcY0a7EPvPjb2xAJPa4HeimBX+Z18HK8QQR3jb6356SnDDdxx+hinMLcJEDdOjw==", "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/dom": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.0.tgz", - "integrity": "sha512-lGTor4VlXcesUMh1cupTUTDoCxMb0V6bm3CnxHzQcw8Eaf1jQbgQX4i02fYgT0vJ82tb5MZ4CZk1LRGkktJCzg==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.1.tgz", + "integrity": "sha512-cwsmW/zyw5ltYTUeeYJ60CnQuPqmGwuGVhG9w0PRaRKkAyi38BT5CKrpIbb+jtahSwUl04cWzSx9ZOIxeS6RsQ==", "license": "MIT", "dependencies": { - "@floating-ui/core": "^1.7.0", + "@floating-ui/core": "^1.7.1", "@floating-ui/utils": "^0.2.9" } }, "node_modules/@floating-ui/react-dom": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", - "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.3.tgz", + "integrity": "sha512-huMBfiU9UnQ2oBwIhgzyIiSpVgvlDstU8CX0AF+wS+KzmYMs0J2a3GwuFHV1Lz+jlrQGeC1fF+Nv0QoumyV0bA==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0" @@ -5696,7 +5696,7 @@ "node_modules/@likeminds.community/feed-js": { "version": "1.20.0", "resolved": "file:../../revamp/likeminds.community-feed-js-1.20.0.tgz", - "integrity": "sha512-iCTxPqJP3j/9X2DujvDV9U6+D5usK73eBOGBqQVYqTf5k6lKQ4//JXPCaQB9JcBcG25mxyr+/Gh+TxlFwUDGQA==", + "integrity": "sha512-M8sM9ZTepwITi9XWn62lIJiQ2X85oHOeGOXEbDgqPnTg2pXkHYDIqT/pEi/VB2ZQHizNXEg2x3K5TZ3j+NiA8g==", "license": "ISC", "dependencies": { "@aws-sdk/client-s3": "^3.226.0", @@ -6824,9 +6824,9 @@ } }, "node_modules/@mui/types": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.2.tgz", - "integrity": "sha512-edRc5JcLPsrlNFYyTPxds+d5oUovuUxnnDtpJUbP6WMeV4+6eaX/mqai1ZIWT62lCOe0nlrON0s9HDiv5en5bA==", + "version": "7.4.3", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.4.3.tgz", + "integrity": "sha512-2UCEiK29vtiZTeLdS2d4GndBKacVyxGvReznGXGr+CzW/YhjIX+OHUdCIczZjzcRAgKBGmE9zCIgoV9FleuyRQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.27.1" @@ -7377,9 +7377,9 @@ } }, "node_modules/@pkgr/core": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", - "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.7.tgz", + "integrity": "sha512-YLT9Zo3oNPJoBjBc4q8G2mjU4tqIbf5CEOORbUUr48dCD9q3umJ3IPlVqOqDakPfd2HuwccBaqlGhN4Gmr5OWg==", "dev": true, "license": "MIT", "engines": { @@ -7520,6 +7520,13 @@ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", "license": "BSD-3-Clause" }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.9", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.9.tgz", + "integrity": "sha512-e9MeMtVWo186sgvFFJOPGy7/d2j2mZhLJIdVW0C/xDluuOvymEATqz6zKsP0ZmXGzQtqlyjz5sC1sYQUoJG98w==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/plugin-babel": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", @@ -7749,9 +7756,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.2.tgz", - "integrity": "sha512-JkdNEq+DFxZfUwxvB58tHMHBHVgX23ew41g1OQinthJ+ryhdRk67O31S7sYw8u2lTjHUPFxwar07BBt1KHp/hg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.41.1.tgz", + "integrity": "sha512-NELNvyEWZ6R9QMkiytB4/L4zSEaBC03KIXEghptLGLZWJ6VPrL63ooZQCOnlx36aQPGhzuOMwDerC1Eb2VmrLw==", "cpu": [ "arm" ], @@ -7763,9 +7770,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.2.tgz", - "integrity": "sha512-13unNoZ8NzUmnndhPTkWPWbX3vtHodYmy+I9kuLxN+F+l+x3LdVF7UCu8TWVMt1POHLh6oDHhnOA04n8oJZhBw==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.41.1.tgz", + "integrity": "sha512-DXdQe1BJ6TK47ukAoZLehRHhfKnKg9BjnQYUu9gzhI8Mwa1d2fzxA1aw2JixHVl403bwp1+/o/NhhHtxWJBgEA==", "cpu": [ "arm64" ], @@ -7777,9 +7784,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.2.tgz", - "integrity": "sha512-Gzf1Hn2Aoe8VZzevHostPX23U7N5+4D36WJNHK88NZHCJr7aVMG4fadqkIf72eqVPGjGc0HJHNuUaUcxiR+N/w==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.41.1.tgz", + "integrity": "sha512-5afxvwszzdulsU2w8JKWwY8/sJOLPzf0e1bFuvcW5h9zsEg+RQAojdW0ux2zyYAz7R8HvvzKCjLNJhVq965U7w==", "cpu": [ "arm64" ], @@ -7791,9 +7798,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.2.tgz", - "integrity": "sha512-47N4hxa01a4x6XnJoskMKTS8XZ0CZMd8YTbINbi+w03A2w4j1RTlnGHOz/P0+Bg1LaVL6ufZyNprSg+fW5nYQQ==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.41.1.tgz", + "integrity": "sha512-egpJACny8QOdHNNMZKf8xY0Is6gIMz+tuqXlusxquWu3F833DcMwmGM7WlvCO9sB3OsPjdC4U0wHw5FabzCGZg==", "cpu": [ "x64" ], @@ -7805,9 +7812,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.2.tgz", - "integrity": "sha512-8t6aL4MD+rXSHHZUR1z19+9OFJ2rl1wGKvckN47XFRVO+QL/dUSpKA2SLRo4vMg7ELA8pzGpC+W9OEd1Z/ZqoQ==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.41.1.tgz", + "integrity": "sha512-DBVMZH5vbjgRk3r0OzgjS38z+atlupJ7xfKIDJdZZL6sM6wjfDNo64aowcLPKIx7LMQi8vybB56uh1Ftck/Atg==", "cpu": [ "arm64" ], @@ -7819,9 +7826,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.2.tgz", - "integrity": "sha512-C+AyHBzfpsOEYRFjztcYUFsH4S7UsE9cDtHCtma5BK8+ydOZYgMmWg1d/4KBytQspJCld8ZIujFMAdKG1xyr4Q==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.41.1.tgz", + "integrity": "sha512-3FkydeohozEskBxNWEIbPfOE0aqQgB6ttTkJ159uWOFn42VLyfAiyD9UK5mhu+ItWzft60DycIN1Xdgiy8o/SA==", "cpu": [ "x64" ], @@ -7833,9 +7840,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.2.tgz", - "integrity": "sha512-de6TFZYIvJwRNjmW3+gaXiZ2DaWL5D5yGmSYzkdzjBDS3W+B9JQ48oZEsmMvemqjtAFzE16DIBLqd6IQQRuG9Q==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.41.1.tgz", + "integrity": "sha512-wC53ZNDgt0pqx5xCAgNunkTzFE8GTgdZ9EwYGVcg+jEjJdZGtq9xPjDnFgfFozQI/Xm1mh+D9YlYtl+ueswNEg==", "cpu": [ "arm" ], @@ -7847,9 +7854,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.2.tgz", - "integrity": "sha512-urjaEZubdIkacKc930hUDOfQPysezKla/O9qV+O89enqsqUmQm8Xj8O/vh0gHg4LYfv7Y7UsE3QjzLQzDYN1qg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.41.1.tgz", + "integrity": "sha512-jwKCca1gbZkZLhLRtsrka5N8sFAaxrGz/7wRJ8Wwvq3jug7toO21vWlViihG85ei7uJTpzbXZRcORotE+xyrLA==", "cpu": [ "arm" ], @@ -7861,9 +7868,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.2.tgz", - "integrity": "sha512-KlE8IC0HFOC33taNt1zR8qNlBYHj31qGT1UqWqtvR/+NuCVhfufAq9fxO8BMFC22Wu0rxOwGVWxtCMvZVLmhQg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.41.1.tgz", + "integrity": "sha512-g0UBcNknsmmNQ8V2d/zD2P7WWfJKU0F1nu0k5pW4rvdb+BIqMm8ToluW/eeRmxCared5dD76lS04uL4UaNgpNA==", "cpu": [ "arm64" ], @@ -7875,9 +7882,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.2.tgz", - "integrity": "sha512-j8CgxvfM0kbnhu4XgjnCWJQyyBOeBI1Zq91Z850aUddUmPeQvuAy6OiMdPS46gNFgy8gN1xkYyLgwLYZG3rBOg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.41.1.tgz", + "integrity": "sha512-XZpeGB5TKEZWzIrj7sXr+BEaSgo/ma/kCgrZgL0oo5qdB1JlTzIYQKel/RmhT6vMAvOdM2teYlAaOGJpJ9lahg==", "cpu": [ "arm64" ], @@ -7889,9 +7896,9 @@ ] }, "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.2.tgz", - "integrity": "sha512-Ybc/1qUampKuRF4tQXc7G7QY9YRyeVSykfK36Y5Qc5dmrIxwFhrOzqaVTNoZygqZ1ZieSWTibfFhQ5qK8jpWxw==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.41.1.tgz", + "integrity": "sha512-bkCfDJ4qzWfFRCNt5RVV4DOw6KEgFTUZi2r2RuYhGWC8WhCA8lCAJhDeAmrM/fdiAH54m0mA0Vk2FGRPyzI+tw==", "cpu": [ "loong64" ], @@ -7903,9 +7910,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.2.tgz", - "integrity": "sha512-3FCIrnrt03CCsZqSYAOW/k9n625pjpuMzVfeI+ZBUSDT3MVIFDSPfSUgIl9FqUftxcUXInvFah79hE1c9abD+Q==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.41.1.tgz", + "integrity": "sha512-3mr3Xm+gvMX+/8EKogIZSIEF0WUu0HL9di+YWlJpO8CQBnoLAEL/roTCxuLncEdgcfJcvA4UMOf+2dnjl4Ut1A==", "cpu": [ "ppc64" ], @@ -7917,9 +7924,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.2.tgz", - "integrity": "sha512-QNU7BFHEvHMp2ESSY3SozIkBPaPBDTsfVNGx3Xhv+TdvWXFGOSH2NJvhD1zKAT6AyuuErJgbdvaJhYVhVqrWTg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.41.1.tgz", + "integrity": "sha512-3rwCIh6MQ1LGrvKJitQjZFuQnT2wxfU+ivhNBzmxXTXPllewOF7JR1s2vMX/tWtUYFgphygxjqMl76q4aMotGw==", "cpu": [ "riscv64" ], @@ -7931,9 +7938,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.2.tgz", - "integrity": "sha512-5W6vNYkhgfh7URiXTO1E9a0cy4fSgfE4+Hl5agb/U1sa0kjOLMLC1wObxwKxecE17j0URxuTrYZZME4/VH57Hg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.41.1.tgz", + "integrity": "sha512-LdIUOb3gvfmpkgFZuccNa2uYiqtgZAz3PTzjuM5bH3nvuy9ty6RGc/Q0+HDFrHrizJGVpjnTZ1yS5TNNjFlklw==", "cpu": [ "riscv64" ], @@ -7945,9 +7952,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.2.tgz", - "integrity": "sha512-B7LKIz+0+p348JoAL4X/YxGx9zOx3sR+o6Hj15Y3aaApNfAshK8+mWZEf759DXfRLeL2vg5LYJBB7DdcleYCoQ==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.41.1.tgz", + "integrity": "sha512-oIE6M8WC9ma6xYqjvPhzZYk6NbobIURvP/lEbh7FWplcMO6gn7MM2yHKA1eC/GvYwzNKK/1LYgqzdkZ8YFxR8g==", "cpu": [ "s390x" ], @@ -7959,9 +7966,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.2.tgz", - "integrity": "sha512-lG7Xa+BmBNwpjmVUbmyKxdQJ3Q6whHjMjzQplOs5Z+Gj7mxPtWakGHqzMqNER68G67kmCX9qX57aRsW5V0VOng==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.41.1.tgz", + "integrity": "sha512-cWBOvayNvA+SyeQMp79BHPK8ws6sHSsYnK5zDcsC3Hsxr1dgTABKjMnMslPq1DvZIp6uO7kIWhiGwaTdR4Og9A==", "cpu": [ "x64" ], @@ -7973,9 +7980,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.2.tgz", - "integrity": "sha512-tD46wKHd+KJvsmije4bUskNuvWKFcTOIM9tZ/RrmIvcXnbi0YK/cKS9FzFtAm7Oxi2EhV5N2OpfFB348vSQRXA==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.41.1.tgz", + "integrity": "sha512-y5CbN44M+pUCdGDlZFzGGBSKCA4A/J2ZH4edTYSSxFg7ce1Xt3GtydbVKWLlzL+INfFIZAEg1ZV6hh9+QQf9YQ==", "cpu": [ "x64" ], @@ -7987,9 +7994,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.2.tgz", - "integrity": "sha512-Bjv/HG8RRWLNkXwQQemdsWw4Mg+IJ29LK+bJPW2SCzPKOUaMmPEppQlu/Fqk1d7+DX3V7JbFdbkh/NMmurT6Pg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.41.1.tgz", + "integrity": "sha512-lZkCxIrjlJlMt1dLO/FbpZbzt6J/A8p4DnqzSa4PWqPEUUUnzXLeki/iyPLfV0BmHItlYgHUqJe+3KiyydmiNQ==", "cpu": [ "arm64" ], @@ -8001,9 +8008,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.2.tgz", - "integrity": "sha512-dt1llVSGEsGKvzeIO76HToiYPNPYPkmjhMHhP00T9S4rDern8P2ZWvWAQUEJ+R1UdMWJ/42i/QqJ2WV765GZcA==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.41.1.tgz", + "integrity": "sha512-+psFT9+pIh2iuGsxFYYa/LhS5MFKmuivRsx9iPJWNSGbh2XVEjk90fmpUEjCnILPEPJnikAU6SFDiEUyOv90Pg==", "cpu": [ "ia32" ], @@ -8015,9 +8022,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.2.tgz", - "integrity": "sha512-bwspbWB04XJpeElvsp+DCylKfF4trJDa2Y9Go8O6A7YLX2LIKGcNK/CYImJN6ZP4DcuOHB4Utl3iCbnR62DudA==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.41.1.tgz", + "integrity": "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw==", "cpu": [ "x64" ], @@ -9393,9 +9400,9 @@ "license": "MIT" }, "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "version": "4.17.22", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.22.tgz", + "integrity": "sha512-eZUmSnhRX9YRSkplpz0N+k6NljUUn5l3EWZIKZvYzhvMphEuNiyyy1viH/ejgt66JWgALwC/gtSUAeQKtSwW/w==", "license": "MIT", "dependencies": { "@types/body-parser": "*", @@ -9579,9 +9586,9 @@ "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.18", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.18.tgz", - "integrity": "sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "license": "MIT" }, "node_modules/@types/range-parser": { @@ -9591,9 +9598,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.21.tgz", - "integrity": "sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw==", + "version": "18.3.23", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.23.tgz", + "integrity": "sha512-/LDXMQh55EzZQ0uVAZmKKhfENivEvWz6E+EYzh+/MCjMhNsotd+ZHhBGIjFDTi6+fz0OhQQQLbTgdQIxxCsC0w==", "dev": true, "license": "MIT", "dependencies": { @@ -10082,15 +10089,16 @@ "license": "ISC" }, "node_modules/@vitejs/plugin-react": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", - "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.5.1.tgz", + "integrity": "sha512-uPZBqSI0YD4lpkIru6M35sIfylLGTyhGHvDZbNLuMA73lMlwJKz5xweH7FajfcCAc2HnINciejA9qTz0dr0M7A==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.26.10", "@babel/plugin-transform-react-jsx-self": "^7.25.9", "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@rolldown/pluginutils": "1.0.0-beta.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.17.0" }, @@ -10143,14 +10151,14 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.14.tgz", - "integrity": "sha512-k7qMHMbKvoCXIxPhquKQVw3Twid3Kg4s7+oYURxLGRd56LiuHJVrvFKI4fm2AM3c8apqODPfVJGoh8nePbXMRA==", + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.16.tgz", + "integrity": "sha512-AOQS2eaQOaaZQoL1u+2rCJIKDruNXVBZSiUD3chnUrsoX5ZTQMaCvXlWNIfxBJuU15r1o7+mpo5223KVtIhAgQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.27.2", - "@vue/shared": "3.5.14", + "@vue/shared": "3.5.16", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.1" @@ -10170,14 +10178,14 @@ } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.14.tgz", - "integrity": "sha512-1aOCSqxGOea5I80U2hQJvXYpPm/aXo95xL/m/mMhgyPUsKe9jhjwWpziNAw7tYRnbz1I61rd9Mld4W9KmmRoug==", + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.16.tgz", + "integrity": "sha512-SSJIhBr/teipXiXjmWOVWLnxjNGo65Oj/8wTEQz0nqwQeP75jWZ0n4sF24Zxoht1cuJoWopwj0J0exYwCJ0dCQ==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.14", - "@vue/shared": "3.5.14" + "@vue/compiler-core": "3.5.16", + "@vue/shared": "3.5.16" } }, "node_modules/@vue/language-core": { @@ -10207,9 +10215,9 @@ } }, "node_modules/@vue/shared": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.14.tgz", - "integrity": "sha512-oXTwNxVfc9EtP1zzXAlSlgARLXNC84frFYkS0HHz0h3E4WZSP9sywqjqzGCP9Y34M8ipNmd380pVgmMuwELDyQ==", + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.16.tgz", + "integrity": "sha512-c/0fWy3Jw6Z8L9FmTyYfkpM5zklnqqa9+a6dz3DvONRKW2NEbh46BP0FHuLFSWi2TnQEtp91Z6zOWNrU6QiyPg==", "dev": true, "license": "MIT" }, @@ -10702,17 +10710,19 @@ "license": "MIT" }, "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -11555,9 +11565,9 @@ "license": "BSD-2-Clause" }, "node_modules/browserslist": { - "version": "4.24.5", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.5.tgz", - "integrity": "sha512-FDToo4Wo82hIdgc1CQ+NQD0hEhmpPjrZ3hiUgwgOG6IuTdlpr8jdjyG24P6cNP1yJpTLzS5OcGgSw0xmDU1/Tw==", + "version": "4.25.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.0.tgz", + "integrity": "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==", "funding": [ { "type": "opencollective", @@ -11574,8 +11584,8 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001716", - "electron-to-chromium": "^1.5.149", + "caniuse-lite": "^1.0.30001718", + "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, @@ -11778,9 +11788,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001718", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001718.tgz", - "integrity": "sha512-AflseV1ahcSunK53NfEs9gFWgOEmzr0f+kaMFA4xiLZlr9Hzt7HxcSpIFcnNCUkz6R6dWKa54rUz3HUmI3nVcw==", + "version": "1.0.30001721", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001721.tgz", + "integrity": "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ==", "funding": [ { "type": "opencollective", @@ -13355,9 +13365,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.154", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.154.tgz", - "integrity": "sha512-G4VCFAyKbp1QJ+sWdXYIRYsPGvlV5sDACfCmoMFog3rjm1syLhI41WXm/swZypwCIWIm4IFLWzHY14joWMQ5Fw==", + "version": "1.5.163", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.163.tgz", + "integrity": "sha512-y6WESxcFekrMfiz9+pTLNacCTsOyeha5JkleNgE12k+7M8P8gaA09h6r/Kc5m2iQ87V9taexvLjAl2ILdJ+xmw==", "license": "ISC" }, "node_modules/emittery": { @@ -13453,27 +13463,27 @@ } }, "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "version": "1.24.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", - "call-bound": "^1.0.3", + "call-bound": "^1.0.4", "data-view-buffer": "^1.0.2", "data-view-byte-length": "^1.0.2", "data-view-byte-offset": "^1.0.1", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", + "es-object-atoms": "^1.1.1", "es-set-tostringtag": "^2.1.0", "es-to-primitive": "^1.3.0", "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", "gopd": "^1.2.0", @@ -13485,21 +13495,24 @@ "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.2.1", + "is-set": "^2.0.3", "is-shared-array-buffer": "^1.0.4", "is-string": "^1.1.1", "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", + "is-weakref": "^1.1.1", "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", "object.assign": "^4.1.7", "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", + "regexp.prototype.flags": "^1.5.4", "safe-array-concat": "^1.1.3", "safe-push-apply": "^1.0.0", "safe-regex-test": "^1.1.0", "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", "string.prototype.trim": "^1.2.10", "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", @@ -13508,7 +13521,7 @@ "typed-array-byte-offset": "^1.0.4", "typed-array-length": "^1.0.7", "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -14645,14 +14658,14 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.0.tgz", - "integrity": "sha512-BvQOvUhkVQM1i63iMETK9Hjud9QhqBnbtT1Zc642p9ynzBuCe5pybkOnvqZIBypXmMlsGcnU4HZ8sCTPfpAexA==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.4.1.tgz", + "integrity": "sha512-9dF+KuU/Ilkq27A8idRP7N2DH8iUR6qXcjF3FR2wETY21PZdBrIjwCau8oboyGj9b7etWmTGEeM8e7oOed6ZWg==", "dev": true, "license": "MIT", "dependencies": { "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.11.0" + "synckit": "^0.11.7" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -16230,9 +16243,9 @@ } }, "node_modules/get-tsconfig": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", - "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.1.tgz", + "integrity": "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==", "dev": true, "license": "MIT", "dependencies": { @@ -16570,9 +16583,9 @@ "license": "MIT" }, "node_modules/hookified": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.0.tgz", - "integrity": "sha512-2yEEGqphImtKIe1NXWEhu6yD3hlFR4Mxk4Mtp3XEyScpSt4pQ4ymmXA1zzxZpj99QkFK+nN0nzjeb2+RUi/6CQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.9.1.tgz", + "integrity": "sha512-u3pxtGhKjcSXnGm1CX6aXS9xew535j3lkOCegbA6jdyh0BaAjTbXI4aslKstCr6zUNtoCxFGFKwjbSHdGrMB8g==", "dev": true, "license": "MIT" }, @@ -17359,6 +17372,18 @@ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", "license": "MIT" }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -20917,9 +20942,9 @@ } }, "node_modules/postcss": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", - "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.4.tgz", + "integrity": "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w==", "funding": [ { "type": "opencollective", @@ -20936,7 +20961,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.8", + "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -21450,15 +21475,15 @@ } }, "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", - "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.0.tgz", + "integrity": "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==", "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, "node_modules/postcss-loader": { @@ -22431,9 +22456,9 @@ "license": "MIT" }, "node_modules/protobufjs": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.2.tgz", - "integrity": "sha512-f2ls6rpO6G153Cy+o2XQ+Y0sARLOZ17+OGVLHrc3VUKcLHYKEKWbkSujdBWQXM7gKn5NTfp0XnRPZn1MIu8n9w==", + "version": "7.5.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.3.tgz", + "integrity": "sha512-sildjKwVqOI2kmFDiXQ6aEB0fjYTafpEvIBs8tOR8qI4spuL9OPROLVu2qZqi/xgCfsHIwVqlaF8JBjWFHnKbw==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { @@ -23468,9 +23493,9 @@ } }, "node_modules/rollup": { - "version": "4.40.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.2.tgz", - "integrity": "sha512-tfUOg6DTP4rhQ3VjOO6B4wyrJnGOX85requAXvqYTHsOgb2TFJdZ3aWpT8W2kPoypSGP7dZUyzxJ9ee4buM5Fg==", + "version": "4.41.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.41.1.tgz", + "integrity": "sha512-cPmwD3FnFv8rKMBc1MxWCwVQFxwf1JEmSX3iQXrRVVG15zerAIXRjMFVWnd5Q5QvgKF7Aj+5ykXFhUl+QGnyOw==", "dev": true, "license": "MIT", "dependencies": { @@ -23484,26 +23509,26 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.40.2", - "@rollup/rollup-android-arm64": "4.40.2", - "@rollup/rollup-darwin-arm64": "4.40.2", - "@rollup/rollup-darwin-x64": "4.40.2", - "@rollup/rollup-freebsd-arm64": "4.40.2", - "@rollup/rollup-freebsd-x64": "4.40.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.40.2", - "@rollup/rollup-linux-arm-musleabihf": "4.40.2", - "@rollup/rollup-linux-arm64-gnu": "4.40.2", - "@rollup/rollup-linux-arm64-musl": "4.40.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.40.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-gnu": "4.40.2", - "@rollup/rollup-linux-riscv64-musl": "4.40.2", - "@rollup/rollup-linux-s390x-gnu": "4.40.2", - "@rollup/rollup-linux-x64-gnu": "4.40.2", - "@rollup/rollup-linux-x64-musl": "4.40.2", - "@rollup/rollup-win32-arm64-msvc": "4.40.2", - "@rollup/rollup-win32-ia32-msvc": "4.40.2", - "@rollup/rollup-win32-x64-msvc": "4.40.2", + "@rollup/rollup-android-arm-eabi": "4.41.1", + "@rollup/rollup-android-arm64": "4.41.1", + "@rollup/rollup-darwin-arm64": "4.41.1", + "@rollup/rollup-darwin-x64": "4.41.1", + "@rollup/rollup-freebsd-arm64": "4.41.1", + "@rollup/rollup-freebsd-x64": "4.41.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.41.1", + "@rollup/rollup-linux-arm-musleabihf": "4.41.1", + "@rollup/rollup-linux-arm64-gnu": "4.41.1", + "@rollup/rollup-linux-arm64-musl": "4.41.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.41.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.41.1", + "@rollup/rollup-linux-riscv64-gnu": "4.41.1", + "@rollup/rollup-linux-riscv64-musl": "4.41.1", + "@rollup/rollup-linux-s390x-gnu": "4.41.1", + "@rollup/rollup-linux-x64-gnu": "4.41.1", + "@rollup/rollup-linux-x64-musl": "4.41.1", + "@rollup/rollup-win32-arm64-msvc": "4.41.1", + "@rollup/rollup-win32-ia32-msvc": "4.41.1", + "@rollup/rollup-win32-x64-msvc": "4.41.1", "fsevents": "~2.3.2" } }, @@ -23720,9 +23745,9 @@ "license": "CC0-1.0" }, "node_modules/sass": { - "version": "1.88.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.88.0.tgz", - "integrity": "sha512-sF6TWQqjFvr4JILXzG4ucGOLELkESHL+I5QJhh7CNaE+Yge0SI+ehCatsXhJ7ymU1hAFcIS3/PBpjdIbXoyVbg==", + "version": "1.89.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.89.1.tgz", + "integrity": "sha512-eMLLkl+qz7tx/0cJ9wI+w09GQ2zodTkcE/aVfywwdlRcI3EO19xGnbmJwg/JMIm+5MxVJ6outddLZ4Von4E++Q==", "dev": true, "license": "MIT", "dependencies": { @@ -24125,9 +24150,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz", - "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -24978,9 +25003,9 @@ } }, "node_modules/stylelint": { - "version": "16.19.1", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.19.1.tgz", - "integrity": "sha512-C1SlPZNMKl+d/C867ZdCRthrS+6KuZ3AoGW113RZCOL0M8xOGpgx7G70wq7lFvqvm4dcfdGFVLB/mNaLFChRKw==", + "version": "16.20.0", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.20.0.tgz", + "integrity": "sha512-B5Myu9WRxrgKuLs3YyUXLP2H0mrbejwNxPmyADlACWwFsrL8Bmor/nTSh4OMae5sHjOz6gkSeccQH34gM4/nAw==", "dev": true, "funding": [ { @@ -25004,15 +25029,15 @@ "cosmiconfig": "^9.0.0", "css-functions-list": "^3.2.3", "css-tree": "^3.1.0", - "debug": "^4.3.7", + "debug": "^4.4.1", "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^10.0.8", + "file-entry-cache": "^10.1.0", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^7.0.3", + "ignore": "^7.0.4", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", "known-css-properties": "^0.36.0", @@ -25277,9 +25302,9 @@ } }, "node_modules/stylelint/node_modules/ignore": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.4.tgz", - "integrity": "sha512-gJzzk+PQNznz8ysRrC0aOkBNVRBDtE1n53IqyqEf3PXrYwomFs5q4pGMizBMJF+ykh03insJ27hB8gSrD2Hn8A==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", "engines": { @@ -25677,14 +25702,13 @@ "license": "MIT" }, "node_modules/synckit": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.5.tgz", - "integrity": "sha512-frqvfWyDA5VPVdrWfH24uM6SI/O8NLpVbIIJxb8t/a3YGsp4AW9CYgSKC0OaSEfexnp7Y1pVh2Y6IHO8ggGDmA==", + "version": "0.11.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.8.tgz", + "integrity": "sha512-+XZ+r1XGIJGeQk3VvXhT6xx/VpbHsRzsTkGgF6E5RX9TTXD0118l87puaEBZ566FhqblC6U0d4XnubznJDm30A==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.4", - "tslib": "^2.8.1" + "@pkgr/core": "^0.2.4" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -25760,9 +25784,9 @@ } }, "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.2.tgz", + "integrity": "sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==", "license": "MIT", "engines": { "node": ">=6" @@ -25875,13 +25899,13 @@ } }, "node_modules/terser": { - "version": "5.39.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.39.1.tgz", - "integrity": "sha512-Mm6+uad0ZuDtcV8/4uOZQDQ8RuiC5Pu+iZRedJtF7yA/27sPL7d++In/AJKpWZlU3SYMPPkVfwetn6sgZ66pUA==", + "version": "5.40.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.40.0.tgz", + "integrity": "sha512-cfeKl/jjwSR5ar7d0FGmave9hFGJT8obyo0z+CrQOylLDbk7X81nPU6vq9VORa5jU30SkDnT2FXjLbR8HLP+xA==", "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", + "acorn": "^8.14.0", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -26607,9 +26631,9 @@ } }, "node_modules/validator": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.0.tgz", - "integrity": "sha512-36B2ryl4+oL5QxZ3AzD0t5SsMNGvTtQHpjgFO5tbNxfXbMFkY822ktCDe1MnlqV3301QQI9SLHDNJokDI+Z9pA==", + "version": "13.15.15", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.15.tgz", + "integrity": "sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==", "dev": true, "license": "MIT", "engines": { @@ -26789,9 +26813,9 @@ } }, "node_modules/watchpack": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", - "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz", + "integrity": "sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==", "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", @@ -26835,9 +26859,9 @@ } }, "node_modules/webpack": { - "version": "5.99.8", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.8.tgz", - "integrity": "sha512-lQ3CPiSTpfOnrEGeXDwoq5hIGzSjmwD72GdfVzF7CQAI7t47rJG9eDWvcEkEn3CUQymAElVvDg3YNTlCYj+qUQ==", + "version": "5.99.9", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.99.9.tgz", + "integrity": "sha512-brOPwM3JnmOa+7kd3NsmOUOwbDAj8FT9xDsG3IW0MgbN9yZV7Oi/s/+MNQ/EcSMqw7qfoRyXPoeEWT8zLVdVGg==", "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", @@ -27023,9 +27047,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.2.tgz", + "integrity": "sha512-ykKKus8lqlgXX/1WjudpIEjqsafjOTcOJqxnAbMLAu/KCsDCJ6GBtvscewvTkrn24HsnvFwrSCbenFrhtcCsAA==", "license": "MIT", "engines": { "node": ">=10.13.0" diff --git a/core/src/hooks/useCreatePost.ts b/core/src/hooks/useCreatePost.ts index 7e944f2..7883ccb 100644 --- a/core/src/hooks/useCreatePost.ts +++ b/core/src/hooks/useCreatePost.ts @@ -305,6 +305,7 @@ export function useCreatePost(): UseCreatePost { // declating state variables const [openCreatePostDialog, setOpenCreatePostDialog] = useState(false); + const [postCreationStarted, setPostCreationStarted] = useState(false); const [showOGTagViewContainer, setShowOGTagViewContainer] = useState(true); const [text, setText] = useState(""); @@ -466,6 +467,7 @@ export function useCreatePost(): UseCreatePost { const postFeed = useCallback( async function (customWidgetsData?: Record[]) { try { + setPostCreationStarted(true); if (openCreatePostDialog) setOpenCreatePostDialog(false); if (openCreatePollDialog) setOpenCreatePollDialog(false); @@ -833,6 +835,8 @@ export function useCreatePost(): UseCreatePost { ); } finally { setOpenPostCreationProgressBar!(false); + setPostCreationStarted(false); + resetStates(); } }, [ @@ -1005,6 +1009,29 @@ export function useCreatePost(): UseCreatePost { }, [lmFeedclient, text]); useEffect(() => { + // Listen for post creation started event + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATION_STARTED, + () => { + setPostCreationStarted(true); + } + ); + + // Listen for post creation completed/failed events + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATED, + () => { + setPostCreationStarted(false); + } + ); + + customEventClient?.listen( + LMFeedCustomActionEvents.POST_CREATION_FAILED, + () => { + setPostCreationStarted(false); + } + ); + // Listen for retry upload event customEventClient?.listen( LMFeedCustomActionEvents.RETRY_POST_UPLOAD, @@ -1054,6 +1081,7 @@ export function useCreatePost(): UseCreatePost { ); } finally { setOpenPostCreationProgressBar!(false); + resetStates(); } } }, @@ -1062,23 +1090,25 @@ export function useCreatePost(): UseCreatePost { customEventClient?.listen( LMFeedCustomActionEvents.OPEN_CREATE_POST_DIALOUGE, (event: Event) => { - setOpenCreatePostDialog(true); - const details = (event as CustomEvent).detail; - const tempPost = details.post; - const topicsMap = details.topics; - setTemporaryPost(tempPost); - const preSelectedTopicsArr = tempPost.topics.map((topicId: string) => { - return topicsMap[topicId]; - }); - const ogTagAttchmentObject = tempPost?.attachments?.filter( - (attachment: Attachment) => { - return attachment.type === AttachmentType.LINK; - }, - ); - if (ogTagAttchmentObject.length) { - setOgtag(ogTagAttchmentObject[0].LMFeedPostAttachmentMeta.ogTags); + if (!postCreationStarted) { + setOpenCreatePostDialog(true); + const details = (event as CustomEvent).detail; + const tempPost = details.post; + const topicsMap = details.topics; + setTemporaryPost(tempPost); + const preSelectedTopicsArr = tempPost.topics.map((topicId: string) => { + return topicsMap[topicId]; + }); + const ogTagAttchmentObject = tempPost?.attachments?.filter( + (attachment: Attachment) => { + return attachment.type === AttachmentType.LINK; + }, + ); + if (ogTagAttchmentObject.length) { + setOgtag(ogTagAttchmentObject[0].LMFeedPostAttachmentMeta.ogTags); + } + setPreSelectedTopics(preSelectedTopicsArr); } - setPreSelectedTopics(preSelectedTopicsArr); }, ); return () => { @@ -1209,12 +1239,6 @@ export function useCreatePost(): UseCreatePost { } }, [temporaryPost]); - useEffect(() => { - if (openCreatePostDialog) { - resetStates(); - } - }, [openCreatePostDialog]); - return { postText: text, setPostText, @@ -1236,7 +1260,11 @@ export function useCreatePost(): UseCreatePost { : editPost, ogTag, openCreatePostDialog, - setOpenCreatePostDialog, + setOpenCreatePostDialog: (value: boolean) => { + if (!postCreationStarted) { + setOpenCreatePostDialog(value); + } + }, temporaryPost, clearPollFunction: onPollClearClicked ? onPollClearClicked.bind(null, postCreationActionAndDataStore) @@ -1266,7 +1294,11 @@ export function useCreatePost(): UseCreatePost { ) : undefined, openCreatePollDialog, - setOpenCreatePollDialog, + setOpenCreatePollDialog: (value: boolean) => { + if (!postCreationStarted) { + setOpenCreatePollDialog(value); + } + }, pollOptions, addPollOption: onAddOptionClicked ? onAddOptionClicked.bind(null, postCreationActionAndDataStore) From 48c244ec35b05833239e7ffb0857752204ae54b6 Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Wed, 4 Jun 2025 17:14:25 +0530 Subject: [PATCH 21/22] peer testing fix --- core/src/hooks/useRetryPost.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/hooks/useRetryPost.ts b/core/src/hooks/useRetryPost.ts index 4e1b860..44eff11 100644 --- a/core/src/hooks/useRetryPost.ts +++ b/core/src/hooks/useRetryPost.ts @@ -89,12 +89,12 @@ export const useLMFeedRetryPost = (): LMFeedRetryPostHook => { const handleRetry = async () => { if (tempPostId && lmFeedclient) { try { + setUploadFailed(false); + setIsVisible(false); const post = await lmFeedclient.getTemporaryPost(); const tempPost = post?.data?.tempPost?.post; if (tempPost) { - setUploadFailed(false); - customEventClient?.dispatchEvent( LMFeedCustomActionEvents.POST_CREATION_STARTED, { tempId: tempPost.id }, From 3a518a941307f8aa66bce2f80d321b6875e52ebc Mon Sep 17 00:00:00 2001 From: yashsajwanlm Date: Thu, 5 Jun 2025 14:14:09 +0530 Subject: [PATCH 22/22] pso bugs resolved --- core/src/components/LMFeedUploadBanner.tsx | 2 +- core/src/hooks/useRetryPost.ts | 24 ++++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/core/src/components/LMFeedUploadBanner.tsx b/core/src/components/LMFeedUploadBanner.tsx index 9a2965a..eadc44f 100644 --- a/core/src/components/LMFeedUploadBanner.tsx +++ b/core/src/components/LMFeedUploadBanner.tsx @@ -38,7 +38,7 @@ const LMFeedUploadBanner: React.FC = () => { className="lm-feed-upload-banner__retry-btn" onClick={handleRetry} > - retry + Retry