Editando o conteúdo da matriz do admin - esquema json

Bom dia, estou tentando setar um título para cada elemento do meu array no schema, porem na minha estrutura contém um campo para upload de imagem, que pode ou não conter uma imagem, e mesmo setando o atributo __editorItemTitle, o título não é exibido na listagem, e sim uma thumb.

image

Teria como exibir essa thumb apenas se tiver uma imagem e quando não tiver, exibir um título?

Olá Diego (@dgpgean), tudo bem?

Teria como compartilhar o schema que você está montando e um wireframe do cenário final desejado?

Até queria tentar ajudar mas não entendi tua explicação não. rs

Abraços!

Oi andré, tudo bem?
Sou horrível pra explicar as coisas mesmo kkk
É assim, eu criei um componente customizado para funcionar como uma faixa de avisos no site, na verdade é um array, e nesse componente adicionei os seguintes campos

TopFeaturedTrack.schema = {
  title: 'Faixa destaque topo',
  description: '',
  type: 'object',
  properties: {

    mensagens:{
      type:'array',
      items:{
        properties: {

          msgAlert: {
            title: 'Mensagem',
            type: 'string',
            widget: {
              "ui:widget": "textarea"
           }
          },
          background: {
            title: 'Cor de fundo',
            type: 'string',
            widget: {
              "ui:widget": "color"
           }
          },
          textColor: {
            title: 'Cor do texto',
            type: 'string',
            widget: {
              "ui:widget": "color"
           }
          },
          image: {
            type: 'string',
            title: 'Banner',
            widget: {
                "ui:widget": "image-uploader"
            }
         },
         startDate: {
           title: 'Data de inicio',
           default: new Date().toISOString(),
           type: 'string',
           format: 'date-time',
           widget: {
              "ui:widget": "datetime"
           }
         },
          endDate: {
            title: 'Data final',
            default: new Date().toISOString(),
            type: 'string',
            format: 'date-time',
            widget: {
               "ui:widget": "datetime"
            }
          },
          __editorItemTitle: {
            title: 'Título',
            type: 'string'
          },
        }
      }
    }
  }


}

O usuário pode colocar uma mensagem de texto ou uma imagem, só que mesmo sem uma imagem selecionada a listagem de mensagens exibe uma thumb, eu adicionei duas mensagens somente com texto,.
image

Quando eu removo o a imagem do schema na listagem exibe o titulo normalmente, mas teria alguma forma de exibi-lo sem tirar esse campo de imagem?

Experimenta a propriedade dependencies do JSON SCHEMA para mostrar apenas o que precisa ser mostrado segundo o contexto desejado… se é imagem mostra determinados campos… se é texto mostra outros campos… na documentação tem vários exemplos bacanas.

https://react-jsonschema-form.readthedocs.io/en/v1.8.1/dependencies/#schema-dependencies

abraços!

Meio atrasado mas foi essa a solução.
Obrigado!

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.