ATLSurveyPost

Essa molécula é utilizada para exibir posts de interação social que contêm uma enquete.
Para visitar a documentação de design desta molécula, clique aqui.
Exemplo de uso com resposta única:
import { ATLSurveyPost, OptionItem } from '@appsimples/atlantica-react-native'
...
const alternatives: OptionItem[] = useMemo(() => [
{ id: 1, text: 'Azul' },
{ id: 2, text: 'Amarelo' },
{ id: 3, text: 'Vermelho' }
], [])
...
const [value, setValue] = useState(0)
<ATLSurveyPost
singleValue={value}
onChange={setValue}
alternativesList={alternatives}
questionText={'Qual é sua cor primária falsa favorita?'}
actionText={actionText}
postText={'Só estou curiosa mesmo'}
onPressUser={onPressUser}
userAvatar={avatar}
timestampText={'Há 10 dias'}
onPressOverflowButton={onPressOverflow}
answerButtonText={'Responder'}
likeButtonText={'Curtir'}
likedByMe={liked}
editedText={'Editado'}
onPressLike={onPressLike}
onPressAnswer={onPressAnswer}
readMoreText={'Ver mais'}
hasBeenEdited
onPressShare={onPressVideo}
shareText={'Compartilhar'}
/>
Exemplo de uso com respostas múltiplas:
import { ATLSurveyPost, OptionItem } from '@appsimples/atlantica-react-native'
...
const alternatives: OptionItem[] = useMemo(() => [
{ id: 1, text: 'Azul' },
{ id: 2, text: 'Amarelo' },
{ id: 3, text: 'Vermelho' }
], [])
...
const [values, setValues] = useState<number[]>([])
// Exemplo de função que adiciona ou retira um item do array de opções
const onChangeValues = useCallback((item: any) => {
let index = values.indexOf(item.id)
const newVal = values
if (index > -1) {
newVal.splice(index, 1)
} else {
newVal.push(item.id)
}
newVal.sort()
setValues([...newVal])
}, [])
<ATLSurveyPost
singleValue={values}
onChange={onChangeValues}
alternativesList={alternatives}
questionText={'Qual é sua cor primária falsa favorita?'}
actionText={actionText}
postText={'Só estou curiosa mesmo'}
onPressUser={onPressUser}
userAvatar={avatar}
timestampText={'Há 10 dias'}
onPressOverflowButton={onPressOverflow}
answerButtonText={'Responder'}
likeButtonText={'Curtir'}
likedByMe={liked}
editedText={'Editado'}
onPressLike={onPressLike}
onPressAnswer={onPressAnswer}
readMoreText={'Ver mais'}
hasBeenEdited
onPressShare={onPressVideo}
shareText={'Compartilhar'}
/>
Props
multipleValuessingleValueonChangeactionTextalternativesLisranswerButtonTexteditedTextlikeButtonTextplaceholderImagepostTextquestionTextreadMoreTextshareTexttimestampTextuserAvataronPressAnsweronPressLikeonPressOverflowButtononPressShareonPressUserhasBeenEditedisAvatarSquareisOverflowIconVerticallikedByMehorizontalMarginhorizontalPaddingverticalMarginverticalPaddingactionLinkLabelBasePropsactionRegularLabelBasePropsavatarBasePropsdividerBasePropslabelButtonBasePropslikeButtonToggleBasePropsoverflowIconButtonBasePropspostLabelBasePropsquestionLabelBasePropstimestampLabelBaseProps
multipleValues
Lista de valores selecionados pelo usuário, controlada fora do componente. Quando preenchida, renderiza os itens da lista com um ícone de checkbox e múltiplas alternativas podem ser selecionadas pelo usuário.
| Tipo | Obrigatório |
|---|---|
| number[] | Não |
singleValue
Opção única selecionada pelo usuário, controlada fora do componente. Quando preenchida, renderiza os itens da lista com um ícone de radio option e uma única alternativa pode ser selecionada por vez.
| Tipo | Obrigatório |
|---|---|
| number[] | Não |
onChange
Handler que será chamado quando o usuário mudar o valor selecionado.
| Tipo | Obrigatório |
|---|---|
| function | Não |
actionText
Texto que aparece ao lado do avatar do usuário.
Esses textos são passados em um array de objetos ActionPostText. Um objeto deste tipo possui duas propriedades: text (obrigatória) e onPress (opcional).
Caso a propriedade onPress seja passada, o texto será renderizado como um link. Caso contrário, como um texto comum.
| Tipo | Obrigatório |
|---|---|
| ActionPostText[] | Não |
alternativesLisr
Texto que aparece ao lado de cada um dos radio buttons.
Esses textos são passados em um array de objetos RadioButtonItem. Um objeto deste tipo possui três propriedades: id (number), text (string) e rightText (string, opcional).
| Tipo | Obrigatório |
|---|---|
| OptionItem[] | Não |
answerButtonText
Texto que aparece no botão de responder o comentário.
| Tipo | Obrigatório |
|---|---|
| string | Sim |
editedText
Caso o comentário tenha sido editado, aparece esse texto ao lado do timestamp.
| Tipo | Obrigatório |
|---|---|
| string | Sim |
likeButtonText
Texto que aparece no botão de curtir o comentário, à direita do ícone de coração.
| Tipo | Obrigatório |
|---|---|
| string | Sim |
placeholderImage
Imagem de placeholder do avatar do usuário.
| Tipo | Obrigatório |
|---|---|
| ImageSourcePropType | Não |
postText
Texto principal que exibe o conteúdo feito pelo usuário.
| Tipo | Obrigatório |
|---|---|
| string | Não |
questionText
Texto da pergunta da enquete.
| Tipo | Obrigatório |
|---|---|
| string | Sim |
readMoreText
Texto que aparece quando a opção de ler mais é ativada.
| Tipo | Obrigatório |
|---|---|
| string | Sim |
shareText
Texto que aparece no botão de compartilhar.
| Tipo | Obrigatório |
|---|---|
| string | Não |
A prop não é obrigatória, mas para renderizar o botão, é necessário preenchê-la juntamente com onPressShare
timestampText
Segunda linha de texto que corresponde ao timestamp da notificação.
| Tipo | Obrigatório |
|---|---|
| string | Sim |
userAvatar
Imagem do usuário que irá aparecer dentro do círculo à esquerda.
| Tipo | Obrigatório |
|---|---|
| ImageSourcePropType | Não |
onPressAnswer
Handler que será chamado quando o usuário apertar o botão de responder.
| Tipo | Obrigatório |
|---|---|
| function | Sim |
onPressLike
Handler que será chamado quando o usuário apertar o botão de curtir.
| Tipo | Obrigatório |
|---|---|
| function | Sim |
onPressOverflowButton
Handler que será chamado quando o usuário apertar o botão de overflow.
| Tipo | Obrigatório |
|---|---|
| function | Não |
A prop não é obrigatória, mas para renderizar o botão de overflow, é necessário preenchê-la.
onPressShare
Handler que será chamado quando o usuário apertar o botão de compartilhar.
| Tipo | Obrigatório |
|---|---|
| string | Não |
A prop não é obrigatória, mas para renderizar o botão, é necessário preenchê-la juntamente com shareText
onPressUser
Handler que será chamado quando for pressionado o avatar ou o nome do usuário.
| Tipo | Obrigatório |
|---|---|
| function | Não |
hasBeenEdited
Campo boleano que indica se o comentário foi editado (true) ou não (false).
| Tipo | Obrigatório |
|---|---|
| boolean | Não |
isAvatarSquare
Campo boleano que indica se o avatar irá utilizar tokens que o deixem arredondado ou quadrado.
| Tipo | Obrigatório |
|---|---|
| boolean | Não |
isOverflowIconVertical
Determina se a orientação do ícone de overflow é vertical ou horizontal.
| Tipo | Obrigatório |
|---|---|
| boolean | Não |
likedByMe
Campo boleano que indica se o comentário foi curtido pelo usuário (true) ou não (false).
| Tipo | Obrigatório |
|---|---|
| boolean | Não |
horizontalMargin
Essa propriedade deve ser modificada caso seja necessário alterar a margem horizontal externa aos elementos da molécula.
Abaixo temos uma tabela indicando o token ao qual a prop está relacionada e o seu valor padrão.
| Prop | Token | Default Value |
|---|---|---|
| horizontalMargin | SpacingMarginal | 16 |
horizontalPadding
Essa propriedade deve ser modificada caso seja necessário alterar o espaçamento horizontal entre os elementos da molécula.
Abaixo temos uma tabela indicando o token ao qual a prop está relacionada e o seu valor padrão.
| Prop | Token | Default Value |
|---|---|---|
| horizontalPadding | SpacingMarginal | 16 |
verticalMargin
Essa propriedade deve ser modificada caso seja necessário alterar a margem vertical externa aos elementos da molécula.
Abaixo temos uma tabela indicando o token ao qual a prop está relacionada e o seu valor padrão.
| Prop | Token | Default Value |
|---|---|---|
| verticalMargin | SpacingMarginal | 16 |
verticalPadding
Essa propriedade deve ser modificada caso seja necessário alterar o espaçamento vertical entre os elementos da molécula.
Abaixo temos uma tabela indicando o token ao qual a prop está relacionada e o seu valor padrão.
| Prop | Token | Default Value |
|---|---|---|
| verticalPadding | SpacingMarginal | 16 |
actionLinkLabelBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de label relativo aos links do actionText, é possível através da modificação das actionLinkLabelBaseProps.
Abaixo temos uma tabela com todas as props da label, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeBody | 14 |
| fontWeight | FontWeightBold | Bold (700) |
| lineHeight | LineHeightNotification | 18 |
| multilineLimit | MultilineLimitBody | undefined |
| opacity | (fixed) | 1 |
| textAlign | TextAlignmentBody | Left |
| textCase | TextCaseBody | None |
| textColor | ColorPrimary | #A94CC9 |
Para mais informações, acesse ATLLabelBase.
actionRegularLabelBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de label relativo aos textos comuns do actionText, é possível através da modificação das actionRegularLabelBaseProps.
Abaixo temos uma tabela com todas as props da label, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeBody | 14 |
| fontWeight | FontWeightNormal | Regular (400) |
| lineHeight | LineHeightNotification | 18 |
| multilineLimit | MultilineLimitBody | undefined |
| opacity | (fixed) | 1 |
| textAlign | TextAlignmentBody | Left |
| textCase | TextCaseBody | None |
| textColor | ColorDarkNeutral | #212121 |
Para mais informações, acesse ATLLabelBase.
avatarBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de avatar, é possível através da modificação das avatarBaseProps.
Abaixo temos uma tabela com todas as props do avatar, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| avatarSize | SizeAvatarPost | 48 |
| borderColor | ColorPrimary | #A94CC9 |
| borderRadius | BorderRadiusAvatarPost | 24 |
| borderWidth | BorderWidthAvatar | 0 |
| iconColor | ColorPrimary | #A94CC9 |
| iconSize | SizeIconBase | 24 |
Para mais informações, acesse ATLAvatarBase.
dividerBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de divisor, é possível através da modificação das dividerBaseProps.
Abaixo temos uma tabela com todas as props do divisor, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| color | ColorSurfaceLightNeutral | #C4C4C4 |
| height | HeightDividerRegular | 1 |
Para mais informações, acesse ATLDividerBase.
labelButtonBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de label correspondente aos botões de Responder e Curtir, é possível através da modificação das labelButtonBaseProps.
Abaixo temos uma tabela com todas as props da label, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeButton | 12 |
| fontWeight | FontWeightStrong | Bold (700) |
| lineHeight | LineHeightBase | 20 |
| multilineLimit | MultilineLimitButton | 1 |
| opacity | (fixed) | 1 |
| textAlign | TextAlignmentButton | Center |
| textCase | TextCaseButton | Uppercase |
| textColor | ColorPrimary | #A94CC9 |
Para mais informações, acesse ATLLabelBase.
likeButtonToggleBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de button toggle correspondente ao coração do like, é possível através da modificação das likeButtonToggleBaseProps.
Abaixo temos uma tabela com todas as props do botão, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| size | (fixed) | 16 |
| tintColor | ColorPrimary | #A94CC9 |
Para mais informações, acesse ATLButtonToggleBase.
overflowIconButtonBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de ícone correspondente ao overflow, é possível através da modificação das overflowIconButtonBaseProps.
Abaixo temos uma tabela com todas as props do ícone, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| buttonBorderColor | ColorNone | transparent |
| buttonBorderWidth | (fixed) | 0 |
| buttonColor | ColorNone | transparent |
| buttonSize | HeightButtonBase | 32 |
| iconColor | ColorDarkNeutral | #212121 |
| iconSize | SizeIconBase | 24 |
Para mais informações, acesse ATLIconButtonBase.
postLabelBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de label correspondente ao corpo de texto do post, é possível através da modificação das postLabelBaseProps.
Abaixo temos uma tabela com todas as props da label, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeBody | 14 |
| fontWeight | FontWeightNormal | Regular (400) |
| lineHeight | LineHeightBase | 20 |
| opacity | (fixed) | 1 |
| readMoreLimit | MultilineLimitPost | 5 |
| textAlign | TextAlignmentBody | Left |
| textCase | TextCaseBody | None |
| textColor | ColorDarkNeutral | #212121 |
Para mais informações, acesse ATLLabelBase.
questionLabelBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de label relativo à pergunta da enquete, é possível através da modificação das questionLabelBaseProps.
Abaixo temos uma tabela com todas as props da label, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeHeading | 16 |
| fontWeight | FontWeightStrong | Bold (700) |
| lineHeight | LineHeightTitle | 24 |
| multilineLimit | (fixed) | undefined |
| opacity | (fixed) | 1 |
| textAlign | TextAlignmentHeading | Left |
| textCase | TextCaseHighlight | None |
| textColor | ColorPrimary | #A94CC9 |
Para mais informações, acesse ATLLabelBase.
timestampLabelBaseProps
Caso seja necessário mudar alguma propriedade base do átomo de label correspondente ao texto do timestamp, é possível através da modificação das timestampLabelBaseProps.
Abaixo temos uma tabela com todas as props da label, os tokens aos quais estão relacionadas e o seu valor padrão.
| Props | Token | Default Value |
|---|---|---|
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeTimestamp | 12 |
| fontWeight | FontWeightStrong | Bold (700) |
| lineHeight | LineHeightNotification | 18 |
| multilineLimit | (fixed) | 1 |
| opacity | (fixed) | 1 |
| textAlign | TextAlignmentBody | Left |
| textCase | TextCaseBody | None |
| textColor | ColorLightNeutral | #9E9E9E |
Para mais informações, acesse ATLLabelBase.
