Documentation
Feedback
Guides
Learning Center

Learning Center
Learning Center
Layout modal
View in English
This content was migrated from the VTEX Learning Center and is no longer being actively maintained. For the most accurate and up-to-date information, please check the official documentation.

Introdução

Também é possível, com o Store Framework, criar uma experiência de modais na loja. Seja para se inscrever em uma newsletter ou criar um quick view, o Modal Layout funciona como todos os outros blocos de layout, em que qualquer bloco pode ser usado como seu conteúdo.

Neste passo, vamos, então, construir um modal mais simples, para, em seguida, construirmos um Quick View funcional.

Um pouco mais sobre como o Modal Layout funciona

O bloco de Modal Layout divide a sua lógica em dois sub-blocos: modal-trigger e modal-layout.

O modal-trigger é usado para que seja escolhido qual bloco deve ser o responsável por disparar o comportamento de modal, você poderia usar uma imagem, um texto, link ou o bloco que preferir.

O modal-layout define quais blocos filhos serão usados dentro do modal. É, portanto, nesse bloco, que o conteúdo do modal em si, deve ser colocado.

Atividade

  1. Na sua home, adicione um modal-trigger#first aos blocos:

_10
{
_10
"store.home": {
_10
"blocks": [
_10
...
_10
"modal-trigger#first"
_10
]
_10
}
_10
}

  1. Defina, então, o modal-trigger#first com um texto de Click Me:

_13
{
_13
...
_13
"modal-trigger#first": {
_13
"children": [
_13
"rich-text#trigger"
_13
]
_13
},
_13
"rich-text#trigger": {
_13
"props": {
_13
"text": "CLICK ME"
_13
}
_13
}
_13
}

  1. Coloque nos filhos do modal-trigger#first o modal-layout#first:

_21
{
_21
...
_21
"modal-trigger#first": {
_21
"children": [
_21
"rich-text#trigger",
_21
+ "modal-layout#first"
_21
]
_21
},
_21
...
_21
+ "modal-layout#first": {
_21
+ "children": [
_21
+ "rich-text#hello"
_21
+ ]
_21
+ },
_21
+ "rich-text#hello": {
_21
+ "props": {
_21
+ "text": "Hello"
_21
+ }
_21
+ }
_21
...
_21
}

O resultado, então, deve ser:

{"base64":"  ","img":{"width":600,"height":400,"type":"gif","mime":"image/gif","wUnits":"px","hUnits":"px","length":159583,"url":"https://user-images.githubusercontent.com/18701182/90183287-9f3c2b00-dd89-11ea-924d-6195465ffd25.gif"}}

Answer sheet

See answer sheet for home.jsonc
home.jsonc

_21
{
_21
"store.home": {
_21
"blocks": ["modal-trigger#first"]
_21
},
_21
"modal-trigger#first": {
_21
"children": ["rich-text#trigger", "modal-layout#first"]
_21
},
_21
"modal-layout#first": {
_21
"children": ["rich-text#hello"]
_21
},
_21
"rich-text#trigger": {
_21
"props": {
_21
"text": "CLICK ME"
_21
}
_21
},
_21
"rich-text#hello": {
_21
"props": {
_21
"text": "Hello"
_21
}
_21
}
_21
}

On this page