Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

style(preview_onFocus): try_add_borders_in_field_preview_when_edit_field_is_onFocus #20

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

oscargross
Copy link
Collaborator

Issue https://github.com/ecomplus/storefront-cms/issues/11

PR acionando o onFocus, porém sem receber o evento no preview!

Comment on lines 20 to 24
style={{
borderStyle:
props?.field.get('name') === window?.previewStyle?.name && props?.field.get('label') === window?.previewStyle?.label
? 'dotted' : 'none'
}}>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

na verdade nem era necessário mexer nos previews padrão de cada widget, isso é só pro custom preview, nesse caso nenhum WidgetPreviewContainer é usado 😬
https://www.netlifycms.org/docs/customization/#registerpreviewtemplate

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Peguei pelos WidgetPreviewContainer pq eles envolvem o componente, então a borda fica certa em volta do componente

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Então, mas o WidgetPreviewContainer só é usado quando não há custom preview template, portanto no nosso CMS o WidgetPreviewContainer de cada widget nunca é usado:

Screenshot 2022-01-18 at 19-14-49 My Shop

Isso é um print do nosso custom preview, se estivéssemos usando os previews padrão de cada componente não apareceria dessa forma...

No nosso caso não temos um preview para cada widget (até porque como tem o list widgets variable types pras sections, não adiantaria ter um preview por widget), temos um único componente pro preview que renderiza a página inteira, sacou?

const name = field.get('name');
window.previewStyle = {
name: field.get('name'),
label: field.get('label'),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

O label aqui funciona com nested props?
Por exemplo, ficaria settings.primary_color ou só primary_color?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Humm esse label é para identificar o componente que foi triggado. Posso montar o objeto de outra forma.
Seria colocar as características da borda ai nesse componente, isso?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Não não, na verdade seria pra eu conseguir identificar o field que foi alterado em nested objects...
Um exemplo com as sections:

"sections": [
  {
    "type": "banner",
    "image": {
      "src": ""
    }
  }
]

Se ele editar a imagem do banner, eu só conseguiria identificar qual elemento foi alterado se o field vier algo como sections[0].image.src (dot notation), se vier só como src não tem como a gente saber no custom preview qual banner está sendo alterado, e portanto não teria como colocar a borda no banner certo, faz sentido?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants