mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-20 06:20:11 +00:00
## Summary
Fix all i18n `no-restricted-imports` lint warnings and upgrade rules
from `warn` to `error`.
## Changes
- **What**: Migrate Vue components from `import { t/d } from '@/i18n'`
to `const { t } = useI18n()`. Migrate non-component `.ts` files from
`useI18n()` to `import { t/d } from '@/i18n'`. Allow `st` import from
`@/i18n` in Vue components (it wraps `te`/`t` for safe fallback
translation). Remove `@deprecated` tag from `i18n.ts` global exports
(still used by `st` and non-component code). Upgrade both lint rules
from `warn` to `error`.
## Review Focus
- The `st` helper is intentionally excluded from the Vue component
restriction since it provides safe fallback translation needed for
custom node definitions.
Fixes #8701
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-8704-fix-resolve-i18n-no-restricted-imports-lint-warnings-2ff6d73d365081ae84d8eb0dfef24323)
by [Unito](https://www.unito.io)
---------
Co-authored-by: Amp <amp@ampcode.com>
55 lines
1.4 KiB
Vue
55 lines
1.4 KiB
Vue
<template>
|
|
<div class="relative rounded-lg bg-backdrop/30">
|
|
<div class="flex flex-col gap-2">
|
|
<Button
|
|
v-tooltip.right="{
|
|
value: t('load3d.openIn3DViewer'),
|
|
showDelay: 300
|
|
}"
|
|
size="icon"
|
|
variant="textonly"
|
|
class="rounded-full"
|
|
:aria-label="t('load3d.openIn3DViewer')"
|
|
@click="openIn3DViewer"
|
|
>
|
|
<i class="pi pi-expand text-lg text-base-foreground" />
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { useI18n } from 'vue-i18n'
|
|
|
|
import Load3DViewerContent from '@/components/load3d/Load3dViewerContent.vue'
|
|
import Button from '@/components/ui/button/Button.vue'
|
|
import type { LGraphNode } from '@/lib/litegraph/src/LGraphNode'
|
|
import { useLoad3dService } from '@/services/load3dService'
|
|
import { useDialogStore } from '@/stores/dialogStore'
|
|
|
|
const { t } = useI18n()
|
|
const { node } = defineProps<{
|
|
node: LGraphNode
|
|
}>()
|
|
|
|
const openIn3DViewer = () => {
|
|
const props = { node: node }
|
|
|
|
useDialogStore().showDialog({
|
|
key: 'global-load3d-viewer',
|
|
title: t('load3d.viewer.title'),
|
|
component: Load3DViewerContent,
|
|
props: props,
|
|
dialogComponentProps: {
|
|
style: 'width: 80vw; height: 80vh;',
|
|
maximizable: true,
|
|
onClose: async () => {
|
|
await useLoad3dService().handleViewerClose(props.node)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
</script>
|
|
|
|
<style scoped></style>
|