Skip to content

Commit

Permalink
refactor: mapAlignToScreenAlign
Browse files Browse the repository at this point in the history
  • Loading branch information
cyaiox committed Feb 21, 2025
1 parent 071dcbd commit 5c67117
Showing 1 changed file with 17 additions and 22 deletions.
39 changes: 17 additions & 22 deletions src/ui.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,35 +109,30 @@ function getAlignMode(align: AlignMode, isColumn: boolean) {
}
}

const validAlignModes = new Set([
AlignMode.TAM_TOP_LEFT,
AlignMode.TAM_TOP_CENTER,
AlignMode.TAM_TOP_RIGHT,
AlignMode.TAM_MIDDLE_LEFT,
AlignMode.TAM_MIDDLE_CENTER,
AlignMode.TAM_MIDDLE_RIGHT,
AlignMode.TAM_BOTTOM_LEFT,
AlignMode.TAM_BOTTOM_CENTER,
AlignMode.TAM_BOTTOM_RIGHT,
])

export function mapAlignToScreenAlign(
align: AlignMode,
flexDirection = YGFlexDirection.YGFD_ROW,
): ScreenAlignMode {
const isColumn = flexDirection === YGFlexDirection.YGFD_COLUMN

switch (align) {
case AlignMode.TAM_TOP_LEFT:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_TOP_CENTER:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_TOP_RIGHT:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_MIDDLE_LEFT:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_MIDDLE_CENTER:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_MIDDLE_RIGHT:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_BOTTOM_LEFT:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_BOTTOM_CENTER:
return getAlignMode(align, isColumn) as any
case AlignMode.TAM_BOTTOM_RIGHT:
return getAlignMode(align, isColumn) as any
default:
// Handle default case or throw an error if needed
throw new Error(`Unsupported AlignMode: ${align}`)
// Check if align is valid and map using getAlignMode
if (validAlignModes.has(align)) {
return getAlignMode(align, isColumn) as ScreenAlignMode
}

throw new Error(`Unsupported AlignMode: ${align}`)
}

export function getUITransform(
Expand Down

0 comments on commit 5c67117

Please sign in to comment.