fix(dashboard): resolve TS build errors in a11y changes
- Fix duplicate className attr in EmojiDialogs.tsx
- Replace animated.div with animated('div') in expression-reviewer and zoomable-chart to fix React 19 children type error
- Fix malformed i18n JSON (a11y namespace was outside root object)
This commit is contained in:
@@ -9,6 +9,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { animated, useSpring } from '@react-spring/web'
|
import { animated, useSpring } from '@react-spring/web'
|
||||||
|
|
||||||
|
const AnimatedDiv = animated('div')
|
||||||
import { useCallback, useEffect, useRef, useState } from 'react'
|
import { useCallback, useEffect, useRef, useState } from 'react'
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
@@ -1443,7 +1445,6 @@ export function ExpressionReviewer({ open, onOpenChange }: ExpressionReviewerPro
|
|||||||
aria-label="待审核的表达方式"
|
aria-label="待审核的表达方式"
|
||||||
aria-activedescendant={quickExpressions[quickCurrentIndex] ? `quick-expr-${quickExpressions[quickCurrentIndex].id}` : undefined}
|
aria-activedescendant={quickExpressions[quickCurrentIndex] ? `quick-expr-${quickExpressions[quickCurrentIndex].id}` : undefined}
|
||||||
>
|
>
|
||||||
<div className="relative w-full max-w-md h-[400px] flex items-center justify-center">
|
|
||||||
{quickExpressions
|
{quickExpressions
|
||||||
.slice(quickCurrentIndex, quickCurrentIndex + 5)
|
.slice(quickCurrentIndex, quickCurrentIndex + 5)
|
||||||
.reverse()
|
.reverse()
|
||||||
@@ -1504,7 +1505,7 @@ if (isCurrent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return isCurrent ? (
|
return isCurrent ? (
|
||||||
<animated.div
|
<AnimatedDiv
|
||||||
key={expr.id}
|
key={expr.id}
|
||||||
ref={cardRef}
|
ref={cardRef}
|
||||||
role="option"
|
role="option"
|
||||||
@@ -1588,7 +1589,7 @@ if (isCurrent) {
|
|||||||
</div>
|
</div>
|
||||||
<span className="font-mono">{formatTime(expr.create_date)}</span>
|
<span className="font-mono">{formatTime(expr.create_date)}</span>
|
||||||
</div>
|
</div>
|
||||||
</animated.div>
|
</AnimatedDiv>
|
||||||
) : (
|
) : (
|
||||||
<div
|
<div
|
||||||
key={expr.id}
|
key={expr.id}
|
||||||
|
|||||||
@@ -18,6 +18,8 @@
|
|||||||
|
|
||||||
import { useRef } from 'react'
|
import { useRef } from 'react'
|
||||||
import { animated, useSpring } from '@react-spring/web'
|
import { animated, useSpring } from '@react-spring/web'
|
||||||
|
|
||||||
|
const AnimatedDiv = animated('div')
|
||||||
import { usePinch } from '@use-gesture/react'
|
import { usePinch } from '@use-gesture/react'
|
||||||
|
|
||||||
import { cn } from '@/lib/utils'
|
import { cn } from '@/lib/utils'
|
||||||
@@ -82,9 +84,9 @@ export function ZoomableChart({
|
|||||||
className={cn('overflow-hidden touch-none select-none', className)}
|
className={cn('overflow-hidden touch-none select-none', className)}
|
||||||
style={{ touchAction: 'none' }}
|
style={{ touchAction: 'none' }}
|
||||||
>
|
>
|
||||||
<animated.div style={style} className="w-full h-full origin-center">
|
<AnimatedDiv style={style} className="w-full h-full origin-center">
|
||||||
{children}
|
{children}
|
||||||
</animated.div>
|
</AnimatedDiv>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -473,4 +473,5 @@
|
|||||||
"sidebarNav": "Main navigation",
|
"sidebarNav": "Main navigation",
|
||||||
"closeMenu": "Close menu",
|
"closeMenu": "Close menu",
|
||||||
"navigatedTo": "Navigated to {{page}}"
|
"navigatedTo": "Navigated to {{page}}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -473,4 +473,5 @@
|
|||||||
"sidebarNav": "メインナビゲーション",
|
"sidebarNav": "メインナビゲーション",
|
||||||
"closeMenu": "メニューを閉じる",
|
"closeMenu": "メニューを閉じる",
|
||||||
"navigatedTo": "{{page}} に移動しました"
|
"navigatedTo": "{{page}} に移動しました"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -473,4 +473,5 @@
|
|||||||
"sidebarNav": "메인 내비게이션",
|
"sidebarNav": "메인 내비게이션",
|
||||||
"closeMenu": "메뉴 닫기",
|
"closeMenu": "메뉴 닫기",
|
||||||
"navigatedTo": "{{page}}으로 이동했습니다"
|
"navigatedTo": "{{page}}으로 이동했습니다"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -473,4 +473,5 @@
|
|||||||
"sidebarNav": "主导航",
|
"sidebarNav": "主导航",
|
||||||
"closeMenu": "关闭菜单",
|
"closeMenu": "关闭菜单",
|
||||||
"navigatedTo": "已导航至 {{page}}"
|
"navigatedTo": "已导航至 {{page}}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -781,11 +781,6 @@ export function EmojiUploadDialog({
|
|||||||
${isSelected ? 'ring-2 ring-primary' : ''}
|
${isSelected ? 'ring-2 ring-primary' : ''}
|
||||||
${complete ? 'border-green-500 bg-green-50 dark:bg-green-950/20' : 'border-border hover:border-muted-foreground/50'}
|
${complete ? 'border-green-500 bg-green-50 dark:bg-green-950/20' : 'border-border hover:border-muted-foreground/50'}
|
||||||
`}
|
`}
|
||||||
className={`
|
|
||||||
flex items-center gap-3 p-3 rounded-lg border-2 cursor-pointer transition-all
|
|
||||||
${isSelected ? 'ring-2 ring-primary' : ''}
|
|
||||||
${complete ? 'border-green-500 bg-green-50 dark:bg-green-950/20' : 'border-border hover:border-muted-foreground/50'}
|
|
||||||
`}
|
|
||||||
>
|
>
|
||||||
<div className="w-12 h-12 rounded border overflow-hidden bg-muted flex-shrink-0 flex items-center justify-center">
|
<div className="w-12 h-12 rounded border overflow-hidden bg-muted flex-shrink-0 flex items-center justify-center">
|
||||||
<img
|
<img
|
||||||
|
|||||||
Reference in New Issue
Block a user