sparkletown/sparkle

View on GitHub
src/types/world.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { EntranceStepConfig } from "types/EntranceStep";
import { Question } from "types/Question";
import { UserStatus } from "types/User";

import { Branded } from "utils/types";

export type WorldSlug = Branded<string, "WorldSlug">;

export enum WorldNavTab {
  general = "general",
  entrance = "entrance",
  advanced = "advanced",
}

export interface WorldGeneralFormInput {
  name: string;
  description?: string;
  subtitle?: string;
  bannerImageFile?: FileList;
  bannerImageUrl?: string;
  logoImageFile?: FileList;
  logoImageUrl?: string;
}

export interface WorldEntranceFormInput {
  code: Question[];
  profile: Question[];
  entrance?: EntranceStepConfig[];
  adultContent?: boolean;
  requiresDateOfBirth?: boolean;
}

export interface WorldAdvancedFormInput {
  attendeesTitle?: string;
  showBadges?: boolean;
  showRadio?: boolean;
  radioStation?: string;
  showSchedule?: boolean;
  showUserStatus?: boolean;
  userStatuses?: UserStatus[];
  hasSocialLoginEnabled?: boolean;
}