m3-academy-template-vtexio-.../custom/react/components/skuSelector/doc.md

87 lines
2.0 KiB
Markdown
Raw Permalink Normal View History

2022-08-11 13:06:07 +00:00
# Sku Selector
## Dependências
## SkuSelectorContext
### State
Exemplo do estado do contexto do sku selector
```ts
{
skus: [
{
id: "1",
name: "blusa preta g",
price: 12345,
maxAvailable: 7,
variants: [
{
name: "cor",
value: "preto"
}
{
name: "tamanho",
value: "G"
}
]
}
{
id: "2",
name: "blusa preta m",
price: 12345,
maxAvailable: 7,
variants: [
{
name: "cor",
value: "preto"
}
{
name: "tamanho",
value: "G"
}
]
}
...
],
variants: ["cor", "tamanho"], // pode ser qualquer especificação cadastrada
variantsValues: [
{
name: "cor",
values: ["preto", "vermelho", "azul", "verde"]
}
{
name: "tamanho",
values: ["GG", "G", "M", "P"]
}
],
currentSelected: {
cor: "preto",
tamanho: "G",
},
selectedSku: "1", // id do sku
}
```
### Actions
Açoes do seletor de sku
```ts
// nome da especificação e seu valor
type Variant = {
name: string
value: string
}
type Actions = {
/*
Muda o estado de currentSelected com os dados da variante selecionada
e caso de match com algum sku disponível deverá altera o selectedSku para o sku encontrado
caso o sku selecionado não possuir o estoque isso é uma regra de view a ser tratada
*/
selectVariant(variant: Variant): void
}
```