hensei-web/types/index.d.ts
Justin Edmund a02a6c70aa
Jedmund/image embeds 2 (#424)
## Component Refactors:
- Updated `CharacterHovercard` to improve over mastery and awakening
section logic.
- Refactored `CharacterModal` to streamline state management (rings,
awakening, perpetuity) and object preparation.
- Adjusted `CharacterUnit` for consistent over mastery handling.
- Simplified `AwakeningSelectWithInput` to use awakening slug values and
improve error handling.
- Updated `RingSelect` to refine ring value syncing and index logic.
- Modified `Party` and `PartyHead` to ensure consistent over mastery
processing and proper preview URL construction.
- Updated `WeaponModal` to align awakening value handling with the new
slug-based approach.

## Styling and Configuration:
- Improved grid layout and styling in the `WeaponRep` SCSS module.
- Updated `next.config.js` rewrite rules to support new preview and
character routes.
- Added a new API endpoint (`pages/api/preview/[shortcode].tsx`) for
fetching party preview images.

## Type Definitions:
- Refined types in `types/GridCharacter.d.ts` and `types/index.d.ts` to
reflect updated structures for rings, over mastery, and awakening.
2025-02-09 22:54:15 -08:00

111 lines
2.1 KiB
TypeScript

export type SearchableObject =
| Character
| Weapon
| Summon
| JobSkill
| Guidebook
export type SearchableObjectArray = (Character | Weapon | Summon | JobSkill)[]
export type JobSkillObject = {
[key: number]: JobSkill | undefined
0: JobSkill | undefined
1: JobSkill | undefined
2: JobSkill | undefined
3: JobSkill | undefined
}
export type FilterObject = {
raid?: string
element?: number
recency?: number
}
export type PaginationObject = {
count: number
totalPages: number
perPage: number
}
export type DetailsObject = {
[key: string]: boolean | number | string | string[] | Raid | undefined
fullAuto?: boolean
autoGuard?: boolean
autoSummon?: boolean
chargeAttack?: boolean
clearTime?: number
buttonCount?: number
turnCount?: number
chainCount?: number
name?: string
description?: string
raid?: Raid
job?: Job
guidebooks?: string[]
visibility?: number
}
export type ExtendedMastery = {
modifier?: number
strength?: number
}
export type CharacterOverMastery = ExtendedMastery[]
export interface MasteryBonuses {
awakening?: {
type: Awakening
level: number
}
over_mastery?: CharacterOverMastery
aetherial_mastery?: ExtendedMastery
}
export interface GridCharacterObject {
character: {
rings: ExtendedMastery[]
earring: ExtendedMastery
awakening?: {
id: string
level: number
}
transcendence_step: number
perpetuity: boolean
}
}
interface GridWeaponObject {
weapon: {
element?: number
weapon_key1_id?: string
weapon_key2_id?: string
weapon_key3_id?: string
ax_modifier1?: number
ax_modifier2?: number
ax_strength1?: number
ax_strength2?: number
awakening_id?: string
awakening_level?: Number
}
}
interface PerpetuityObject {
character: {
perpetuity: boolean
}
}
interface PageContextObj {
user?: User
teams?: Party[]
party?: Party
jobs?: Job[]
jobSkills?: JobSkill[]
raidGroups: RaidGroup[]
weaponKeys?: GroupedWeaponKeys
pagination?: PaginationObject
meta?: { [key: string]: string }
}
interface ResponseStatus {
code: number
text: string
}