Commit 613c5e49 authored by Яков's avatar Яков
Browse files

Подписи типов заданий приходят от платформы



Своя таблица в пакете разошлась со словами платформы в первый же день:
в окне выбора «Тестирование», в карточке того же задания — «Тест». Автор
видит два разных названия одной вещи и решает, что это две разные вещи.

Прежняя таблица остаётся запасной — на случай, если хост подписи не передал.
Co-Authored-By: default avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
parent 301e73a3
......@@ -200,6 +200,7 @@ const QEditor = ({
onPickActivity = null,
// Открыть конструктор задания из карточки в редакторе
onOpenActivity = null,
activityLabels = null,
// Документ tiptap наружу. Отдельным пропом, а НЕ вторым аргументом onChange:
// редактор используется в 21 месте, и все ждут строку с HTML.
// Не передали — ничего не меняется.
......@@ -849,7 +850,7 @@ const QEditor = ({
TextStyle,
FontSize,
BlockId,
ActivityRef.configure({ onOpenActivity }),
ActivityRef.configure({ onOpenActivity, labels: activityLabels }),
ButtonLinkExtension,
Color.configure({
types: ['textStyle']
......
......@@ -40,7 +40,15 @@ import React from 'react'
* См. docs/Редактор уроков — этап 2, JSON-документ — ТЗ.md, §8.
*/
/** Доменные типы. Клиентские (test, psy-test, video) сюда НЕ попадают */
/**
* Запасные подписи доменных типов. Клиентские (test, psy-test, video) сюда
* НЕ попадают.
*
* Настоящие названия приходят от хоста опцией labels: слова для одного и того
* же типа задания у платформы уже есть — в структуре модуля, в окне выбора,
* в отчётах. Своя таблица в пакете разошлась бы с ними в первый же день
* (проверено: «Тестирование» в окне выбора против «Тест» в карточке).
*/
const TYPE_LABELS = {
question: 'Тест',
questionPsychologic: 'Психологический тест',
......@@ -52,7 +60,8 @@ const TYPE_LABELS = {
const ActivityCard = ({ node, deleteNode, extension }) => {
const a = node.attrs
const label = TYPE_LABELS[a.activityType] || a.activityType || 'Задание'
const labels = extension.options.labels || {}
const label = labels[a.activityType] || TYPE_LABELS[a.activityType] || a.activityType || 'Задание'
const onOpen = extension.options.onOpenActivity
return (
......@@ -91,6 +100,8 @@ const ActivityRef = Node.create({
return {
/** Хост открывает конструктор задания: пакет про маршруты платформы не знает */
onOpenActivity: null,
/** Подписи типов от хоста: {question: 'Тестирование', …} */
labels: null,
}
},
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment