Skip to main content

LinkPreview

Base

Utilize o componente LinkPreview para exibir uma prévia do conteúdo de determinada URL.

Informação

Internamente, o componente LinkPreview é renderizado como um link convencional (<a>), presumindo-se que a url fornecida aponte para um endereço externo. Por esse motivo, as propriedades target e rel recebem, por padrão, os valores "_blank" e "noreferrer", respectivamente.

Busca customizada e CORS

Utilize a propriedade fetcher para definir um mecanismo de obtenção dos dados associados à url. Essa propriedade deve ser uma função assíncrona que recebe a url como parâmetro e retorna um objeto com os seguintes atributos:

  • title: O título associado ao conteúdo da url
  • description: A descrição associada ao conteúdo da url
  • imageSrc: O endereço da imagem associada ao conteúdo da url

Esta propriedade possui um valor padrão, disponível na constante LinkPreview.fetcher, que realiza essa busca da seguinte forma:

  • title: Retorna o conteúdo do elemento <title>, caso não esteja presente, será retornado a própria url
  • description: Retornar o valor do atributo content do elemento <meta name="description"> se disponível
  • imageSrc: Retorna o valor do atributo content do elemento <meta property="og:image"> se disponível

Entretanto, devido às políticas de CORS (Cross-Origin Resource Sharing) aplicadas pela maioria dos navegadores, esse mecanismo só funcionará corretamente para URLs do mesmo domínio da página onde o componente estiver sendo renderizado. Para domínios externos, as informações não poderão ser acessadas e apenas o endereço da url será exibido.

Para contornar as restrições de CORS, recomenda-se implementar uma solução no servidor (como um proxy ou uma API HTTP) e, a partir dela, fornecer um fetcher customizado ao componente.

Título, descrição e imagem customizados

Utilize as propriedades title, description e imageSrc para customizar o título, a descrição e o caminho da imagem, respectivamente.

Informação

Se forem passadas, estas propriedades serão sempre utilizadas mesmo que o fetcher retorne valores para seus atributos equivalentes.

Se as três propriedades forem definidas, o fetcher não será executado e o componente será renderizado diretamente, sem carregamento ou busca prévia.

Feedback

To report a problem or suggest changes, use our improvements form or, if you prefer, open an issue on our Github repository.