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 = ({ ...@@ -200,6 +200,7 @@ const QEditor = ({
onPickActivity = null, onPickActivity = null,
// Открыть конструктор задания из карточки в редакторе // Открыть конструктор задания из карточки в редакторе
onOpenActivity = null, onOpenActivity = null,
activityLabels = null,
// Документ tiptap наружу. Отдельным пропом, а НЕ вторым аргументом onChange: // Документ tiptap наружу. Отдельным пропом, а НЕ вторым аргументом onChange:
// редактор используется в 21 месте, и все ждут строку с HTML. // редактор используется в 21 месте, и все ждут строку с HTML.
// Не передали — ничего не меняется. // Не передали — ничего не меняется.
...@@ -849,7 +850,7 @@ const QEditor = ({ ...@@ -849,7 +850,7 @@ const QEditor = ({
TextStyle, TextStyle,
FontSize, FontSize,
BlockId, BlockId,
ActivityRef.configure({ onOpenActivity }), ActivityRef.configure({ onOpenActivity, labels: activityLabels }),
ButtonLinkExtension, ButtonLinkExtension,
Color.configure({ Color.configure({
types: ['textStyle'] types: ['textStyle']
......
...@@ -40,7 +40,15 @@ import React from 'react' ...@@ -40,7 +40,15 @@ import React from 'react'
* См. docs/Редактор уроков — этап 2, JSON-документ — ТЗ.md, §8. * См. docs/Редактор уроков — этап 2, JSON-документ — ТЗ.md, §8.
*/ */
/** Доменные типы. Клиентские (test, psy-test, video) сюда НЕ попадают */ /**
* Запасные подписи доменных типов. Клиентские (test, psy-test, video) сюда
* НЕ попадают.
*
* Настоящие названия приходят от хоста опцией labels: слова для одного и того
* же типа задания у платформы уже есть — в структуре модуля, в окне выбора,
* в отчётах. Своя таблица в пакете разошлась бы с ними в первый же день
* (проверено: «Тестирование» в окне выбора против «Тест» в карточке).
*/
const TYPE_LABELS = { const TYPE_LABELS = {
question: 'Тест', question: 'Тест',
questionPsychologic: 'Психологический тест', questionPsychologic: 'Психологический тест',
...@@ -52,7 +60,8 @@ const TYPE_LABELS = { ...@@ -52,7 +60,8 @@ const TYPE_LABELS = {
const ActivityCard = ({ node, deleteNode, extension }) => { const ActivityCard = ({ node, deleteNode, extension }) => {
const a = node.attrs 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 const onOpen = extension.options.onOpenActivity
return ( return (
...@@ -91,6 +100,8 @@ const ActivityRef = Node.create({ ...@@ -91,6 +100,8 @@ const ActivityRef = Node.create({
return { return {
/** Хост открывает конструктор задания: пакет про маршруты платформы не знает */ /** Хост открывает конструктор задания: пакет про маршруты платформы не знает */
onOpenActivity: null, 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