Модели: список локальных сборок
Лаунчер отдаёт расширениям готовые модели данных через useModel из @rynt/sdk/extension. Ключ 'local_builds' даёт доступ к локальным сборкам Minecraft: список, запуск, остановка и т.д. (полный набор полей — в типах пакета @rynt/sdk, модель LocalBuildsModelApi).
Ниже — учебный экран: загрузка списка, поле поиска по названию, вывод строк.
Компонент экрана
src/LocalBuildsPage.vue
<script setup lang="ts">
import { computed, onMounted, ref } from 'vue';
import { useModel } from '@rynt/sdk/extension';
import { Input, Stack, Text } from '@rynt/sdk';
const query = ref('');
const localBuilds = useModel('local_builds');
onMounted(() => {
void localBuilds.loadAllManifests();
});
const rows = computed(() => localBuilds.getBuildsList.value);
const filtered = computed(() => {
const q = query.value.trim().toLowerCase();
if (!q) return rows.value;
return rows.value.filter((b) => b.name.toLowerCase().includes(q));
});
</script>
<template>
<Stack gap="md" class="p-4">
<Text as="strong">Локальные сборки</Text>
<Input v-model="query" placeholder="Фильтр по названию…" />
<Stack gap="sm">
<Text v-for="b in filtered" :key="b.uuid">
{{ b.name }} — {{ b.minecraftVersion ?? '?' }}
</Text>
<Text v-if="!filtered.length">Ничего не найдено</Text>
</Stack>
</Stack>
</template>Импорты Input, Stack, Text — из корневого @rynt/sdk (см. UI-кит).
Регистрация страницы
В setup расширения зарегистрируйте страницу и пункт меню так же, как в Hello World, подставив LocalBuildsPage вместо HelloPage и свой фрагмент пути (например builds).
Доступные ключи useModel
Список ключей зафиксирован в SDK (например builds, user, settings, local_builds, …). Набор может меняться между версиями лаунчера — ориентируйтесь на тип RyntLauncherModelKey и константу RYNT_LAUNCHER_MODEL_KEYS в @rynt/sdk/extension.
Дальше
- UI-кит
- Реактивные сторы внутри расширения —
defineStore, если логику экрана удобнее вынести из компонента.