mirror of https://github.com/zulip/zulip.git
onboarding_steps: Convert module to TypeScript.
This commit is contained in:
parent
3a03e14938
commit
28e4fe1820
|
@ -157,7 +157,7 @@ EXEMPT_FILES = make_set(
|
|||
"web/src/navbar_help_menu.ts",
|
||||
"web/src/navbar_menus.js",
|
||||
"web/src/navigate.js",
|
||||
"web/src/onboarding_steps.js",
|
||||
"web/src/onboarding_steps.ts",
|
||||
"web/src/overlay_util.ts",
|
||||
"web/src/overlays.ts",
|
||||
"web/src/padded_widget.ts",
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
import * as blueslip from "./blueslip";
|
||||
import * as channel from "./channel";
|
||||
import {current_user} from "./state_data";
|
||||
import type {OnboardingSteps} from "./state_data";
|
||||
|
||||
export const ONE_TIME_NOTICES_TO_DISPLAY = new Set();
|
||||
export const ONE_TIME_NOTICES_TO_DISPLAY = new Set<string>();
|
||||
|
||||
export function post_onboarding_step_as_read(onboarding_step_name) {
|
||||
channel.post({
|
||||
export function post_onboarding_step_as_read(onboarding_step_name: string): void {
|
||||
void channel.post({
|
||||
url: "/json/users/me/onboarding_steps",
|
||||
data: {onboarding_step: onboarding_step_name},
|
||||
error(err) {
|
||||
|
@ -20,11 +21,11 @@ export function post_onboarding_step_as_read(onboarding_step_name) {
|
|||
});
|
||||
}
|
||||
|
||||
export function filter_new_hotspots(onboarding_steps) {
|
||||
export function filter_new_hotspots(onboarding_steps: OnboardingSteps[]): OnboardingSteps[] {
|
||||
return onboarding_steps.filter((onboarding_step) => onboarding_step.type === "hotspot");
|
||||
}
|
||||
|
||||
export function update_notice_to_display(onboarding_steps) {
|
||||
export function update_notice_to_display(onboarding_steps: OnboardingSteps[]): void {
|
||||
ONE_TIME_NOTICES_TO_DISPLAY.clear();
|
||||
|
||||
for (const onboarding_step of onboarding_steps) {
|
||||
|
@ -34,6 +35,6 @@ export function update_notice_to_display(onboarding_steps) {
|
|||
}
|
||||
}
|
||||
|
||||
export function initialize() {
|
||||
export function initialize(): void {
|
||||
update_notice_to_display(current_user.onboarding_steps);
|
||||
}
|
|
@ -21,6 +21,32 @@ export const narrow_term_schema = z.object({
|
|||
export type NarrowTerm = z.output<typeof narrow_term_schema>;
|
||||
// Sync this with zerver.lib.events.do_events_register.
|
||||
|
||||
const hotspot_location_schema = z.object({
|
||||
element: z.string(),
|
||||
offset_x: z.number(),
|
||||
offset_y: z.number(),
|
||||
popover: z.optional(z.string()),
|
||||
});
|
||||
|
||||
const hotspot_schema = z.object({
|
||||
delay: z.number(),
|
||||
description: z.string(),
|
||||
has_trigger: z.boolean(),
|
||||
location: z.optional(hotspot_location_schema),
|
||||
name: z.string(),
|
||||
title: z.string(),
|
||||
type: z.literal("hotspot"),
|
||||
});
|
||||
|
||||
const one_time_notice_schema = z.object({
|
||||
name: z.string(),
|
||||
type: z.literal("one_time_notice"),
|
||||
});
|
||||
|
||||
const onboarding_steps_schema = z.union([one_time_notice_schema, hotspot_schema]);
|
||||
|
||||
export type OnboardingSteps = z.output<typeof onboarding_steps_schema>;
|
||||
|
||||
export const current_user_schema = z.object({
|
||||
avatar_source: z.string(),
|
||||
delivery_email: z.string(),
|
||||
|
@ -29,6 +55,7 @@ export const current_user_schema = z.object({
|
|||
is_guest: z.boolean(),
|
||||
is_moderator: z.boolean(),
|
||||
is_owner: z.boolean(),
|
||||
onboarding_steps: z.array(onboarding_steps_schema),
|
||||
user_id: z.number(),
|
||||
});
|
||||
// Sync this with zerver.lib.events.do_events_register.
|
||||
|
|
Loading…
Reference in New Issue