31940461c6
electron был не нужен вообще — тянулся транзитивно только через неиспользуемую devDependency @vue/devtools (нет ни одного импорта в коде). Убрана из desktop/package.json и из onlyBuiltDependencies корня; lockfile пересобран. Это устраняет флап CI: pnpm install изредка валился на сетевой ошибке при скачивании ~200MB бинарника electron (run #745 и run #732 на этом PR), из-за чего typecheck падал до первой TS-проверки. Так как install перестал падать раньше срока, vue-tsc теперь реально доходит до конца и вскрывает предсуществующие баги: - useCapitalProgramDocParams.ts, CapitalProgramDocumentParametersWidget.vue: импорт `CapitalProgramPrivateData` напрямую из 'cooptypes' никогда не работал — тип лежит в Cooperative.Registry, не на верхнем уровне (остальной код capital-расширения уже импортирует так же). Каст результата Object.fromEntries (индексная сигнатура) в интерфейс с именованными полями TS отклоняет как insufficient overlap; вместо unknown-каста — каст в Record<EditableFieldKey, string> (тот же паттерн, что и в соседней createEmptyForm), который затем обычной структурной проверкой присваивается в CapitalProgramPrivateData, т.к. набор из 11 полей совпадает один в один. - CapitalProgramDocumentParametersWidget.vue: legacy draft.activeTab стал optional при переходе на wizardStepKey и больше не записывается читалкой драфта — добавлен фолбэк на дефолт 994, как и в самой readCapitalProgramDocParamsDraft. - CapitalProgramInlineDocumentPreview.vue: querySelectorAll с составным CSS-селектором типизируется как NodeListOf<Element>; cleanupEditors использовал узел как HTMLTextAreaElement без сужения (соседняя syncInlineEditors уже делает `as HTMLTextAreaElement` для той же ситуации). - ExtensionInstall.vue: prop schema был типизирован как unknown, хотя передаётся напрямую в ZodForm, которому нужен IExtensionConfigSchema — типизирован точно под фактическое использование. - sdk/queries/paymentMethods/getPaymentMethods.ts: `const name` был без export вопреки конвенции всех остальных query-модулей (Queries.X.Y.name используется для чтения ключа GraphQL-ответа). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
51 lines
1.6 KiB
Vue
51 lines
1.6 KiB
Vue
<template lang="pug">
|
|
.extension-install
|
|
q-form(ref='formRef')
|
|
BaseCard(v-if='schema && !isEmpty', title='Настройки')
|
|
ZodForm(
|
|
:schema='schema',
|
|
:model-value='config',
|
|
:install-mode='true',
|
|
@update:model-value='$emit("update:config", $event)'
|
|
)
|
|
BaseCard(v-else, title='Установка расширения')
|
|
p.extension-install__note Расширение не требует дополнительной настройки. Нажмите «Включить» для завершения установки и активации расширения.
|
|
</template>
|
|
|
|
<script lang="ts" setup>
|
|
import { computed } from 'vue';
|
|
import type { ComponentPublicInstance } from 'vue';
|
|
import { ZodForm } from 'src/shared/ui/ZodForm';
|
|
import { BaseCard } from 'src/shared/ui/base/BaseCard';
|
|
import { isExtensionSchemaEmpty } from 'src/shared/lib/utils';
|
|
import type { IExtensionConfigSchema } from 'src/entities/Extension/model';
|
|
|
|
type ExtensionInstallConfig = Record<string, unknown>;
|
|
type ExtensionInstallFormRef = {
|
|
value: Element | ComponentPublicInstance | null | undefined;
|
|
};
|
|
|
|
interface Props {
|
|
extensionName?: string;
|
|
schema?: IExtensionConfigSchema;
|
|
config: ExtensionInstallConfig;
|
|
formRef?: ExtensionInstallFormRef;
|
|
}
|
|
|
|
const props = defineProps<Props>();
|
|
|
|
const isEmpty = computed(() => isExtensionSchemaEmpty(props.schema));
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
.extension-install {
|
|
max-width: 1000px;
|
|
}
|
|
.extension-install__note {
|
|
margin: 0;
|
|
font-size: var(--p-fs-body);
|
|
line-height: 1.6;
|
|
color: var(--p-ink-2);
|
|
}
|
|
</style>
|