Commit Graph

19 Commits

Author SHA1 Message Date
Anders Kaseorg
3dccb72519 dependencies: Upgrade JavaScript dependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-06-26 21:34:18 -07:00
Anders Kaseorg
804c3706ff tsconfig: Enable noUncheckedIndexedAccess.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-05-30 16:29:23 -07:00
Anders Kaseorg
9b711cda20 tippy: Use namespace import for tippy.js.
Names like “delegate”, “Instance”, “Placement”, “Props”, and
“ReferenceElement” are much too generic to make sense as named
imports.

The downside is that we now need to write tippy.default(…) instead of
tippy(…) (because ES module namespace objects cannot be callable), but
that cost is worthwhile.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-05-30 15:45:46 -07:00
Anders Kaseorg
27a993a504 stats: Make sent_data_schema specifically expect human and bot keys.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-05-30 10:01:59 -07:00
Anders Kaseorg
507eb4913c tsconfig: Enable exactOptionalPropertyTypes.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-05-16 08:58:20 -07:00
Anders Kaseorg
5b92fbacaa stats: Fix implicit use of any.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-05-06 11:31:34 -07:00
Anders Kaseorg
a4938d3760 page_params: Parse page_params and state_data with Zod.
This establishes a runtime check that their types continue to reflect
reality going forward.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-02-17 00:02:38 -08:00
Anders Kaseorg
a68c96231f stats: Fix types for upload_space_used, guest_users parameters.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2024-02-16 17:39:45 -05:00
Anders Kaseorg
ba895b64ef stats: Remove unchecked casts of Plotly data.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2023-10-25 13:08:36 -07:00
Junyao Chen
59aa62a36f stats: Add zod validation to server data and misc data.
Data retrieved from the backend using `get_chart_data` is validated
in the expected form for frontend usage. Used `zod` schemas to
validate data.
2023-08-17 11:35:00 -07:00
Junyao Chen
a2669d146b ts: Migrate stats.js to TypeScript.
Add primitive types and promise types to variables, function
parameters and return values.

Apply type conversion functions to some objects so that the type
unification afterwards will succeed, such as converting int to
string.

Add custom types that for helper methods.

Add non-null assertions for trivial statements from code base context.
2023-08-17 11:35:00 -07:00
Junyao Chen
4ff3b8f04a stats: Fix improper function parameter passing.
Second parameter (boolean) is not supported by the function definition
in the scope. Removed in this commit.

Previous commit that made this happen:
fa9d79e203
2023-08-17 11:35:00 -07:00
Junyao Chen
0815d0473b stat: Add comments specifying the compoenents that the methods refer to.
Added one line comment for each `populate_*` methods specifying the
corresponding component that the method rendering for on the webpage.
Comments make the cross-checking experience easier.
2023-08-17 11:35:00 -07:00
Junyao Chen
1e1122282a stats: Remove unsupported sort property.
According to
https://github.com/plotly/plotly.js/blob/master/src/traces/bar/attributes.js,
plotly does not have `sort` available for bar plots. This was missed in
e01f80bf93.
2023-08-17 11:35:00 -07:00
Junyao Chen
640de3ad29 page_params: Add web/src/stats/page_params.ts for stat module
`stat.js` has its page params different from all other modules.
2023-08-17 11:35:00 -07:00
Alex Vandiver
ba7492a314 web: Do not assume error responses are valid, or our, JSON.
Partially fixes #24815.
2023-07-19 16:18:31 -07:00
Alex Vandiver
7efe989a72 web: Switch from JSON.parse(xhr.responseText) to xhr.responseJSON. 2023-07-19 16:18:31 -07:00
Anders Kaseorg
2a70c11c5f eslint: Fix unicorn/prefer-spread.
This was initially disabled for IE/Babel-related reasons that no
longer apply.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2023-03-02 12:16:56 -08:00
Anders Kaseorg
c1675913a2 web: Move web app to ‘web’ directory.
Ever since we started bundling the app with webpack, there’s been less
and less overlap between our ‘static’ directory (files belonging to
the frontend app) and Django’s interpretation of the ‘static’
directory (files served directly to the web).

Split the app out to its own ‘web’ directory outside of ‘static’, and
remove all the custom collectstatic --ignore rules.  This makes it
much clearer what’s actually being served to the web, and what’s being
bundled by webpack.  It also shrinks the release tarball by 3%.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2023-02-23 16:04:17 -08:00