#content-management-system #sanity #headless-cms
#content-management-system #здравомыслие #безголовый-cms
Вопрос:
У меня есть сформированная структура документов:
{
name: 'item',
title: 'item',
type: 'document',
fields: [
{
name: 'category',
type: 'reference',
title: 'category',
to: { type: 'settingCategory' },
validation: Rule => Rule.required(),
},
],
}
Я не хочу менять структуру в столе. Но мне нужно показать category
в пользовательском интерфейсе studio как «относительную папку». Возможно ли это?
—UPD
В @sanity/desk-tool/structure-builder
настоящее время у меня есть такая структура:
export default () =>
SB.list()
.id('root')
.title('root')
.items([
SB.documentTypeListItem('item'), //all items are here, and they have a category by field in the each other
...
])
...
),
...
])
Но мне нужно показать категорию как родительскую. И мне нужно как-то связать мое значение категории внутри с SB.list()
. Категория — это независимый документ с полями, он у меня уже есть.
—UPD2
Я имею в виду, что теперь у меня есть один родственник .documentTypeListItem(name:item)
, и у него есть элементы с полем tags
. Каждое поле тега имеет одно значение. Теперь у меня проблема, мне нужно разделить это item
s в соответствии с этим значением поля тега на documentTypeListItem(name:tagOne)
, documentTypeListItem(name:tagTwo)
и т.д. в моей панели инструментов.
—UPD3
Если перемещение невозможно. В качестве альтернативы можно будет отобразить значок для элемента в соответствии с выбранной категорией. Что-то вроде этого, но это не работает:
name: 'item',
title: 'item',
type: 'document',
fields: [
{
name: 'categoryCheck',
type: 'string',
title: 'category',
options: {
list:[
{
name: 'one',
title: 'One',
type: 'string',
icon: 'FaIconOne',
},
{
name: 'two',
title: 'two',
type: 'string',
icon: 'FaIconTwo',
},
],
layout: 'select'
},
},
],
preview: {
select: {
title: 'title.name',
media: 'categoryCheck.icon'
}
}
}
Комментарии:
1. Просто чтобы лучше понять вопрос — вы хотите иметь возможность добавлять новые
settingCategory
записи при редактированииitem
, не покидая страницу?2. @bjoerge любая ваша подсказка может помочь
3. @kizoso Я уверен, что мы сможем найти способ решить эту проблему, но мне нужно лучше понять, чего именно вы пытаетесь достичь. Возможно, было бы проще перевести разговор на slack.sanity. ввод -вывод, а затем вернитесь сюда и обновите вопрос ответ, как только мы это выясним? Это было бы возможно для вас?
4. @thomax спасибо за приглашение! Это будет очень полезно! Я обязательно напишу там в ближайшие дни.