Commit graph

122 commits

Author SHA1 Message Date
Harrison Healey
e8ac030ed9
Update web app package versions to 11.0.4 (#34338)
Some checks are pending
Server CI / Compute Go Version (push) Waiting to run
Server CI / Check mocks (push) Blocked by required conditions
Server CI / Check go mod tidy (push) Blocked by required conditions
Server CI / check-style (push) Blocked by required conditions
Server CI / Check serialization methods for hot structs (push) Blocked by required conditions
Server CI / Vet API (push) Blocked by required conditions
Server CI / Check migration files (push) Blocked by required conditions
Server CI / Generate email templates (push) Blocked by required conditions
Server CI / Check store layers (push) Blocked by required conditions
Server CI / Check mmctl docs (push) Blocked by required conditions
Server CI / Postgres with binary parameters (push) Blocked by required conditions
Server CI / Postgres (push) Blocked by required conditions
Server CI / Postgres (FIPS) (push) Blocked by required conditions
Server CI / Generate Test Coverage (push) Blocked by required conditions
Server CI / Run mmctl tests (push) Blocked by required conditions
Server CI / Run mmctl tests (FIPS) (push) Blocked by required conditions
Server CI / Build mattermost server app (push) Blocked by required conditions
Web App CI / check-lint (push) Waiting to run
Web App CI / check-i18n (push) Waiting to run
Web App CI / check-types (push) Waiting to run
Web App CI / test (push) Waiting to run
Web App CI / build (push) Waiting to run
2025-10-29 20:56:06 +00:00
Jesse Hallam
8cace74692
MM-64486: Remove telemetry (#33606)
* MM-64486: Remove telemetry

Remove telemetry from Mattermost. We're no longer relying on Rudder upstream, and no longer making use of this information.

* recover mock for SystemStore.Get

* Fix TestClearPushNotificationSync by adding missing SystemStore mock

The test was failing because the SystemStore mock was missing the Get()
method that's required by the ServerId() function. Added the missing mock
to return a StringMap with SystemServerId.

* fix mocking issue

* Remove now-unused telemetry and constants

* Remove "Disable telemetry events" debug setting

* Remove empty functions

* Remove most "Telemetry tracking removed" comments

* Remove remains of DataPrefetch telemetry

* Remove now-unused prop from InviteMembersButton

* Remove trackDotMenuEvent

* Remove some more leftover comments

* Remove lingering logic related to trackingLocation

* Remove now-unused argument from useCopyText

* Remove lingering telemetry references from PreparingWorkspace

* fixup Remove trackDotMenuEvent

* Remove lingering telemetry references from signup page and password check

* Update snapshots and fix test broken by my changes

* Fix unintended behavior change in thread list filtering

Remove handleSetFilter wrapper that was accidentally modified during
telemetry removal. The function was calling clear() when switching to
unread filter, which was not the original behavior. Use setFilter
directly instead, restoring the original functionality.

* Remove unused useOpenDowngradeModal hook

The useOpenDowngradeModal hook was not being used anywhere in the codebase.

* Remove unused expandableLink from useExpandOverageUsersCheck

The expandableLink return value was not being used by any components.

* Re-add missing TeamLinkClicked performance telemetry

The mark(Mark.TeamLinkClicked) call was accidentally removed from the
handleSwitch function. This telemetry is needed for Looker-based
performance tracking.

* drop LogSettings.VerboseDiagnostics

---------

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-09-04 18:46:18 +00:00
Harrison Healey
5f51497219
MM-51231 Replace react-custom-scrollbars with react-simplebar (#33783)
* Add simplebar-react at latest version supported by React 17

* Prevent sidebars and centre channel from overflowing the page vertically

* Add Scrollbars component and replace react-custom-scrollbars

* Remove react-custom-scrollbars

* Fix usage of Scrollbars in modals

The various way we reuse .more-modal, .more-modal__list, and
.filtered-user-list in slightly different ways really made painful. We
should revisit that at some point when we get the chance since those
classes are used in a bunch of contradictory ways like using
.more-modal__list in a popover list in Multiselect versus as part of the
modal in the Browse Channel modal. It also doesn't help that some modals
use Scrollbars and others just use `overflow: auto` on either the whole
modal or on the .more-modal__list.

* Fix dragging the LHS scrollbar also dragging the channel behind it

* Fix scrolling in Browse Channels modal

* Fix results in user group modals not scrolling

* Update snapshots and fix tests

* Prevent focusing simplebar divs (accessibility_sidebar_spec.ts)

* Fix admin LHS still being able to scroll (openid_spec.ts)

* Migrate Team Members modal to GenericModal and the new menu (manage_members_spec.js)

The menu was being cut off yet again by the contents of the modal, so I
migrated that to the new menu to portal it out of that. Unfortunately,
that caused the infinite recursion bug between MUI and React Bootstrap's
focus trap logic, so I had to also migrate the modal to GenericModal to
fix that.

* Update snapshot and fix test

* Update snapshot and fix test

* Fix another E2E test

* More snapshots
2025-09-03 18:30:19 -04:00
Harrison Healey
dabb443d2f
Update web app and subpackage versions to 10.12.0 (#33771) 2025-09-02 09:08:48 -04:00
Harrison Healey
dbf4e80d16
Remove dependency on Axios following Compass removal (#33761) 2025-08-21 16:28:03 -04:00
Harrison Healey
7dc6982472
Update React Bootstrap fork to support React 18 (#33661)
* Update React Bootstrap fork to support React 18

* Fix mismatched versions

* Change react-bootstrap version back to 0.34 branch
2025-08-20 18:27:13 -04:00
Harrison Healey
13a6e06093
MM-64380 Remove compass components (#33744)
* Remove Flex component

* Remove Heading component

* Remove StatusIcon component

* Migrate IconButton from Compass Components repo

* Remove unused variants of IconButton and move into GlobalHeader

We only actually used IconButton in a limited set of locations (all
currently in the global header), and if I tried to test other
variations, they seemed to often have issues (like white text on a white
background). Most of those seemed to be because the theme in the
CompassThemeProvider was missing fields and fell back to defaults that
didn't make sense, but there were also enough errors in IconButtonRoot
(like invalid transitions or other logical errors) that lead me to just
rip out everything we don't currently use.

* Remove CompassThemeProvider

* Remove remaining references to @mattermost/compass-components

* Remove prop that's no longer needed
2025-08-20 17:16:11 -04:00
Harrison Healey
51d0508c3f
MM-51230 Remove unused react-contextmenu dependency (#33671) 2025-08-19 19:00:54 -04:00
Harrison Healey
72dbc1488c
MM-64781 Update internal web app dependency versions and add script for future version updates (#33567)
* Update all web app dependencies to latest release branch version

* Add script to update web app package versions going forward
2025-08-13 10:37:29 -04:00
Pablo Vélez
a7a49784d3
Fix npm vulnerabilities (#33539)
* fix critical vulnerabilities in npm packages

* Polyfill buffer via webpack.ProvidePlugin after upgrading pbkdf2
2025-07-29 11:50:16 +02:00
Harrison Healey
5b6320b7dc
MM-62744 Change how custom URLs are autolinked to fix remote user at-mentions (#32080)
* Stop explicitly passing autocompleteUrlSchemes into text formatting code

This is the first part of changing how autocompleteUrlSchemes works so
that it can be moved to be part of the parser like in mobile instead of
happening in the renderer.

I'm not a fan of using the global store directly in utils/markdown, but
this seems like the only way to have this apply to all the Markdown
that's rendered in various helpers throughout the app. Ideally, we'd
have some getMarkdownParser selector and a hook which provides the
config, but that's a future improvement to make"

* MM-62744 Move URL filtering to the Markdown parser instead of the renderer

MM-62744 is caused by two things:

1. URL autolinking takes place in the Markdown parser which occurs
   before at-mention parsing which (despite the "parsing" part) happens
   in the Markdown renderer in the web app.
2. The autolinking in marked is very aggressive and identifies anything
   that looks like some:text as a link.

Those lead to remote mentions like `@user:server` being incorrectly
parsed by Markdown as a link to `user:server`. It isn't renderered as a
link because the URL filtering logic in the Markdown parser blocks that,
but at that point, the Markdown renderer won't check if it's an
at-mention.

By moving the URL filtering to occur earlier, like it does in the mobile
app, the Markdown code won't autolink `@user:server` (unless the server
has `user` configured as a custom URL scheme for some reason), so it's
free to be turned into an at-mention by the renderer code.

* MM-62744 Ensure various regexes and features support remote mentions

* Update marked back to master
2025-07-03 11:05:12 -04:00
M-ZubairAhmed
476b46d1d7
[MM-64501] Upgrade to web-vitals v5.0.3 (#31404) 2025-06-13 17:56:16 +05:30
Caleb Roseland
f2aa50170f
MM-63705: bump styled-components & luxon (#31030) 2025-06-05 11:35:16 -05:00
Ibrahim Serdar Acikgoz
35e06a2ee8
[MM-64422] Update icons for CEL Table Editor (#31213) 2025-05-30 22:39:24 +02:00
Harrison Healey
00af66459a
Enforce EOL newlines in CSS files (#31174) 2025-05-26 11:47:13 -04:00
Ibrahim Serdar Acikgoz
a344b3225b
[MM-61756] Attribute Based Access Control - Phase 1 (#30785)
Attribute Based Access Control - Base
* MM-63662

* MM-63919

* MM-63954

* MM-63955 

* MM-63425

* MM-63426

* MM-63458

* MM-63459

* MM-63603

* MM-63845

* MM-64146

* MM-64199

* MM-64201

* MM-64233

* MM-64247

* MM-64268

---------

Co-authored-by: Harshil Sharma <harshilsharma63@gmail.com>
Co-authored-by: Pablo Andrés Vélez Vidal <pablovv2012@gmail.com>
Co-authored-by: abhijit-singh <abhijitsingh0702@gmail.com>
Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
2025-05-15 11:33:08 +02:00
Harrison Healey
15efbb658f
MM-63616 Remove react-hot-loader and hot-loader/react-dom (#30744) 2025-05-05 16:51:23 -04:00
Arya Khochare
faf68a6d86
MM-56630 Scroll Fix of center panel (#30144)
* pageup/pagedown button scroll for center post-list

* revert package.json

* changing id, using ? and returning in keyHandler

* added e2e test for pageup/pagedown scroll

* Fix dynamic-virtualized-list not being in lockfile and update path

Moving the package under the MM namespace wasn't necessary, but it stops
some warnings from NPM.

* Move E2E test from Cypress to Playwright

Cypress's cy.type doesn't seem to properly trigger browser functions
because it doesn't seem to use native keyboard events. A newer version
of Cypress has a new cy.press method which is supposed to use native
keyboard events, but it also only supports the tab key currently, so it
wouldn't be useful here.

* Fix new test on iPad

* Add page up/down support to RHS and Threads view

* Update type definitions for dynamic-virtualized-list

---------

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
2025-04-24 11:15:40 -04:00
M-ZubairAhmed
e9c54bf88e
[MM-63685] Virtualize drafts in the drafts list (#30563) 2025-04-23 11:38:04 +05:30
Harrison Healey
32ce2f13bb
MM-62382/MM-63615 Remove explicit reference to react-popper and remaining references to popper.js (#30743)
* Replace usage of react-popper in onboarding with floating-ui

* Remove direct dependency on react-popper

Compass components still depend on react-popper, but none of the web app
code does any more.

* Remove direct dependency on popper.js

* Remove unneeded dependency on @types/bootstrap and remaining indirect dependency on popper.js
2025-04-22 15:35:21 -04:00
M-ZubairAhmed
502506a517
[MM-55277] Team's menu doesn't follow standard accessible keyboard behavior (#29917) 2025-04-18 19:18:54 +05:30
Domenico Rizzo
b7d95f5368
[MM-23180] Take full-width punctuation marks as boundary for hyperlinks (#30084) 2025-02-28 10:00:45 +05:30
ayush-chauhan233
8e9a09e512
[MM-61647][MM-61651]: Upgraded react-select to v5 (#30070)
* [MM-61647]: Upgraded react-select to v5
- Updated old type definitions with new v5 packaged type definitions.
- Removed some unused props
- Updated onBlur, onFocus and handleInputChange methods in user_input_email component

* Fix incorrect usage of handleInputChange in ChannelsInput

* Remove type assertions from dropdown_input_hybrid.tsx

* Simplify typing of users_emails_input.tsx

* [MM-61647][MM-61651]: Fixed some type definitions and e2e failing test case

* [MM-61647][MM-61651]: Fixed type error in dropdown_input_hybrid

* [MM-61647][MM-61651]: Fixed failing CI type error and e2e test cases

* [MM-61647][MM-61651]: Fixed failing e2e test case

* [MM-61647][MM-61651]: Updated the styles and reverted the test case changes
- Fixed the theme not getting correctly inherited
- Fixed the timezone and language settings getting saved on enter

---------

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2025-02-25 17:13:51 -05:00
Harrison Healey
96c2d4ae56
MM-62866 Update axios dependency (#30265)
I had to fight with NPM longer than I thought I would for the override
to take effect. I ended up having to manually tweak the
package-lock.json to get it to take.
2025-02-21 16:59:16 -05:00
enzowritescode
169274b3aa
[MM-62864] Bump katex to 0.16.21 (#30095) 2025-02-11 11:18:01 +05:30
Jesús Espino
9b87970c99
Migrating other 2 files from javascript to typescript (#29435)
* feat: Add initial store configuration for webapp channels

* refactor: Convert store/index.js to TypeScript with type definitions

* test: Add initial test file for store index

* refactor: Convert index.test.js to TypeScript with type annotations

* Removing old files

* Applying linter fixes

* Fixing some of the types errors

* fix: Type mock implementation of getState in global_actions.test.ts

* test: Add missing GlobalState import in global_actions.test.ts

* fix: Resolve TypeScript mock implementation error in global_actions.test.ts

* Some fixes

* Address CI problems

* Installing zen-observable types

* Addressing PR review comment

* Addressing PR review comment

* Addressing PR review comment

* Addressing PR review comment

* Addressing PR review comment

* Simpliying things

* Fixing CI

* Fixing types
2025-02-10 15:43:09 +01:00
Julien Tant
1b29abd857
Add typescript-eslint-language-service (#30015) 2025-02-04 15:29:29 -07:00
Harrison Healey
86aad9d0a5
Add platform/mattermost-redux package for publishing (#30020)
* Replace key-mirror with mattermost-redux/utils/key_mirror

At some point, we made our own version for mattermost-redux with proper type definitions
but we seem to have forgotten to use that everywhere in the web app.

* Remove Rudder reference from mattermost-redux

* Remove Giphy API from mattermost-redux

* Remove mattermost-webapp refernces from Client and Types packages

* Create platform/mattermost-redux without moving its source files

* Don't build mattermost-redux automatically

* Copy changes to package.json from platform/mattermost-redux to other packages

The changes to the typesVersions and exports fields are to make it
easier for tooling to know to make it so that importing a folder imports
the index file inside that folder since that's not standard to all
CommonJS packages.

The added type field is just a good pracice.

* Explicitly type re-exported selectors

For some reason, the types generated by the previous version of this didn't work
when mattermost-redux was built as a standalone package. Explicitly typing these
is a bit more verbose, but it fixes things.

* Fix import loop in selectors introduced by last commit

* Update package versions to 10.6.0

* Add explicit dependencies to mattermost-redux package

* Remove check and run scripts from mattermost-redux package

* Revert changes to NOTICE.txt
2025-02-04 22:26:46 +00:00
Saturnino Abril
95b22f47a0
MM-62426: Remove form-data from @mattermost/client (#29792) 2025-01-10 13:28:32 +08:00
Jesús Espino
4e1e7334d8
Migrate remaining javascript files in webapp/channels/src/plugins to typescript (#29386)
* feat: Migrate actions.js to TypeScript with type annotations

* feat: Migrate actions.js to TypeScript with correct action types

* feat: Add actions plugin for webapp channels

* feat: Migrate actions.js to TypeScript with type annotations

* feat: Add interactive dialog plugin for webapp channels

* feat: Migrate interactive_dialog.js to TypeScript with type definitions

* feat: Add export plugin module for webapp channels

* feat: Migrate export.js to TypeScript with type declarations

* feat: Add initial plugin index file for webapp channels

* feat: migrate plugins/index.js to TypeScript with type definitions

* test: Add export plugin test file

* feat: Migrate export.test.js to TypeScript with type assertions

* feat: Add emoji actions file to webapp channels

* feat: Migrate emoji_actions.js to TypeScript with full type support

* Fixing some issues

* Revert "feat: Migrate emoji_actions.js to TypeScript with full type support"

This reverts commit e64aabe9fc.

* fixing linter errors

* Fixing CI

* Addressing pr review comments

* Apply suggestions from code review

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>

* Fixing linter errors

* Fixing CI

---------

Co-authored-by: Harrison Healey <harrisonmhealey@gmail.com>
2024-12-12 10:03:13 +01:00
M-ZubairAhmed
f80afad1b6
[MM-58441] Create a floating-ui Tooltip which will swap out ReactBootstrap tooltip (#29464)
Added a new tooltip
- components/team_sidebar/components/team_button.tsx
- components/post_view/reaction/reaction_tooltip/reaction_tooltip.tsx
- components/post_view/post_recent_reactions/post_recent_reactions.tsx
- components/common/comment_icon.tsx
2024-12-09 14:50:08 +00:00
Harrison Healey
c519bee236
Fixathon: Web app dependency updates part 2 (Sass) (#29037)
* Update sass-loader@16.0.2

* Update sass part 1 (actually update it)

* Update scss files to remove at-charset and use at-use instead of at-import

at-charset hasn't been needed since we switched to dart-sass, and
at-import is now deprecated. Most of this was done using sass-migrator.

We still use at-import for files imported from node_modules, but sass
doesn't seem to complain about that

* Inline at-extend rule that was causing an error

* Remove or inline at-use rules in components package
2024-11-15 12:23:11 -05:00
Harrison Healey
4136343476
Fixathon: Web app dependency updates part 1 (#29036)
* Ensure all packages remove a node_modules in their folder when cleaning

* Upgrade typescript to 5.6.3 and move to root package.json

Note that this currently fails to build the types package due to
@types/node which I'm going to try to remove

* Update @types/node to 20.11 to match .nvmrc

* Upgrade zen-observable to 0.10.0

It looks like localforage-observable uses its own version
of zen-observable because it hasn't been updated in years.
This seems like something we probably should remove.

* Update yargs to 17.7.2

* Update webpack-dev-server to 5.1.0

* Remove webpack-bundle-analyzer since we haven't used it in years

* Update webpack to 5.95.0

* Update web-vitals to 4.2.4

* Update turndown to 7.2.0

* Update tinycolor2 to 1.6.0

* Update timezones.json to 1.7.0

* Update stylelint to 16.10.0, stylelint-config-recommended-scss to 14.1.0, and stylelint-scss to 6.8.1

* Update webpack-cli to 5.1.4

* Update style-loader to 4.0.0

* Change all Webpack scripts to be ES modules

* Update strip-ansi to 7.1.0

This is a build script dependency

* Update chalk to 5.3.0

This is a build script dependency

* Update concurrently to 9.0.1

This is a build script dependency

* Update smooth-scroll-into-view-if-needed to 2.0.2

* MM-48205 Update serialize-error to 11.0.3

We didn't update this before because it's an ES module which caused Jest to complain. We can fix that by making Jest transform the it

* Update semver to 7.6.3

* Update types for semver, tinycolor2, turndown, and webpack

* Fix type issues: change Props to a type

* Fix type issues: invalid HTML attributes

* Remove unneeded option from Webpack config
2024-11-06 13:40:19 -05:00
Pablo Vélez
87cc13c590
Fixathon ICU - remove npm vulnerabilities from production version (#28999)
* fix high vulnerability present in braces

* remove vulnerabilities from pdfjs-dis and update types for node and react

* adapt the pdf preview file to the lib new version

* lock the estree version to a compatible version

* use minified version of worker and adjust webpack to support extension for ESM module process

* get working the pdf preview

* adjust jest to use babel correctly

* override asn1.js lib to keep working version

* upgrade semver version to a secure version

* remove no longer needed changes

* fix linter issues

* fix merge conflicts

* sync package-lock

* fix conflicts

* adjust lock to npm ci
2024-11-05 13:41:29 +01:00
Caleb Roseland
3ac1c9821b
MM-61198: react-hooks-testing-library and renderHookWithContext (#28886) 2024-10-29 08:56:22 -05:00
Devin Binnie
0c90b0363b
[MM-60609][MM-60612] Include Desktop App metrics in PerformanceReporter, add metrics in Prometheus for CPU/Memory usage (#28825)
* [MM-60609][MM-60612] Include Desktop App metrics in PerformanceReporter, add metrics in Prometheus for CPU/Memory usage

* Fix mocks

* PR feedback
2024-10-22 12:16:20 -04:00
Harrison Healey
e080f9f5ed
Change localizeMessage to take a MessageDescriptor as a parameter (#28141)
* Change localizeAndFormatMessage to take a MessageDescriptor

* Change localizeMessage to take a MessageDescriptor as a parameter

* Update mmjstool to support new localizeMessage signature

* Change mmjstool commit back to master branch
2024-09-24 12:07:51 -04:00
Caleb Roseland
355dd18e52
MM-60335: Upgrade to typescript 5.5.4 (#28099)
Co-authored-by: Mattermost Build <build@mattermost.com>
2024-09-24 10:39:35 -05:00
M-ZubairAhmed
5d7aa17a27
[MM-58726] Add a loading screen to initial load of the web app (#27740) 2024-08-26 12:41:59 +00:00
Harrison Healey
c0874455f3
Disable legacy-peer-deps and manually override mismatched dependencies (#27677)
* Disable legacy-peer-deps and manually override mismatched dependencies

* Switch to overriding dependencies of individual packages
2024-07-18 15:36:02 -04:00
Harrison Healey
e3b2b13292
MM-58535 Add more information to LCP and INP metrics (#27484)
* Improve mocking of imported resources in unit tests

We have Webpack configured so that, when code imports an image or other resource, the code gets the URL of that image. Jest now matches that behaviour which is needed because React Testing Library would previously throw an error.

* Polyfill ResizeObserver in all unit tests

* Ensure haveIChannelPermission always returns a boolean value

The previous code could sometimes return undefined. While that should behave the same in practice, it can cause React to print prop type warnings

* MM-58535 Add region label to LCP metrics

* MM-58535 Upgrade web-vitals and add INP attribution

* Change new labels to use snake_case

* Remove replaceGlobalStore option from renderWithContext

I was going to add this in case any tests failed with this option set to false, but after running those tests, that's not the case. I'm going to remove this as an option since it seems more likely than not that anyone using RTL would prefer to have this on.
2024-07-09 15:06:08 -04:00
Takuya N
6010ff5521
Remove dup stylelint depdendencies in webapp/channels (#27499) 2024-07-09 13:14:53 +00:00
Harrison Healey
de3c7ad544
MM-57878 Add PerformanceReporter for clientside performance metrics (#26800)
* Define rough code for PerformanceReporter

* Create a component to manage the PerformanceReporter

* Start adding tests for PerformanceReporter

* Add test for web vitals reporting

* Update schema to more closely match the API spec

* Collect marks as counters and further update structure of API payload

* Add some outstanding TODOs about the API structure

* Add counter for long tasks

* Add EnableClientMetrics without any System Console UI

* Have PerformanceReporter use EnableClientMetrics

* Have the PerformanceReporter only report results when logged in

* Add test for having PerformanceReporter fall back to fetch

* Stop logging errors for measurements failing

* Remove buffered from observer

* Remove the Mystery Ampersand

* Still record marks with telemetry actions even if telemetry is disabled

* Add timestamps to performance reports

* Reuse the new telemetry code for the old telemetry

* The second half of the last commit

* Use Node performance libraries in all tests

* Set version of PerformanceReport

* Switch to the proper version of EnableClientMetrics

* Remove TODO for unneeded field

* Add user agent and platform detection

* Updated metrics API route
2024-05-09 12:50:52 -04:00
Claudio Costa
5d4ad44bfe
[MM-58002] Review start call button functionality in profile popover (#26867)
* Review start call button functionality in profile popover

* Address feedback

* Use published @mattermost/calls-common package

* Fix import

* Lint fix
2024-05-08 13:47:36 -06:00
Nick Misasi
f1019d076e
[CLD-7567] Deprecate Self Serve: Second Pass (#26853)
* Deprecate Self Serve: First Pass

* Fix ci

* Fix more ci

* Remmove outdated server tests

* Fix a missed spot opening purchase modal in Self Hosted

* Fix i18n

* Clean up some more server code, fix webapp test

* Fix alignment of button

* Fix linter

* Fix i18n server side

* Deprecate in product true up

* Add back translation

* Remove client functions

* Put back client functions

* webapp deprecation

* Deprecate Self Serve: Second Pass

* Fix various pipeline issues

* Fix linter

* Fix pipelines

* Fix handlers_test.go

* Fix console.error around hostedCustomer in reducer

* PICKY LINTER PLEASE

* Fix webapp tests, various other fixes for the CI pipelines

* Fix i18n

* Updates to accomadate enterprise code removal

* Fix mocks

* More removal

* Fix

* Adjustments from PR

* Fixes for QA Feedback

* Update

* Add migrations to remove true up review history

* Fix migrations check

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
Co-authored-by: maria.nunez <maria.nunez@mattermost.com>
2024-05-02 09:15:15 -04:00
Harrison Healey
22d72b6df8
Remove access to global state from some files (#26752)
* admin_console/license_settings/trial_banner

* invitation_modal and associated utils

* overlay trigger

* Change TrialBanner to not use makeGetCategory

* Address feedback

* Fixing unit tests D:

* Address further feedback

* Fix one last test
2024-04-22 14:53:42 -04:00
Devin Binnie
02e23a3275
[MM-57066][MM-57329] Added metrics for all notification stopping points, consolidated categories between metrics and logging (#26799)
* [MM-57066] Add metric counters for notification events

* Some small changes

* Account for Metrics() sometimes being nil

* Fix test (again)

* Fix more tests

* A few changes from testing - added success counter

* Missed a mock

* Lint

* Add feature flag for notification monitoring
2024-04-18 10:30:08 -04:00
Devin Binnie
65c6717e6b
Add login/logout signal to Desktop App API (#26701) 2024-04-09 09:16:07 -04:00
Harrison Healey
30ab45ebb8
MM-57458 Update Katex (#26650) 2024-04-04 16:57:35 -04:00
Harrison Healey
8c3ab07d49
Patch eslint-plugin-react-hooks to properly handle class properties (#26493)
* Update package-lock.json for some reason

* Patch eslint-plugin-react-hooks

* Disable fixed ESLint rule temporarily
2024-03-18 14:24:15 -04:00