React Integration
Widget de feedback para aplicações React
Instalação
Via Package Manager
npm install @feedget/widgetConfiguração Básica
1. Configurar o Provider
// App.tsx ou _app.tsx
import { FeedgetWidget } from "@feedget/widget/react";
import "@feedget/widget/styles.css";
function App() {
return (
<div>
<h1>Minha Aplicação</h1>
<FeedgetWidget apiKey="feedget_pk_live_abc123..." />
</div>
);
}App.tsxIntegração com Next.js
App Router (Next.js 13+)
Para Next.js com App Router, adicione o widget no layout principal:
// app/layout.tsx
import { FeedgetWidget } from "@feedget/widget/react";
import "@feedget/widget/styles.css";
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="pt-BR">
<body>
{children}
<FeedgetWidget
apiKey={process.env.NEXT_PUBLIC_FEEDGET_API_KEY || ""}
/>
</body>
</html>
);
}Pages Router (Next.js 12 e anteriores)
Para Next.js com Pages Router, adicione no _app.tsx:
// pages/_app.tsx
import type { AppProps } from "next/app";
import { FeedgetWidget } from "@feedget/widget/react";
import "@feedget/widget/styles.css";
export default function App({ Component, pageProps }: AppProps) {
return (
<>
<Component {...pageProps} />
<FeedgetWidget
apiKey={process.env.NEXT_PUBLIC_FEEDGET_API_KEY || ""}
/>
</>
);
}Propriedades do Componente
Props Disponíveis
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
apiKey | string | Sim | Sua API key do Feedget (gerada no dashboard) |
orientation | "left" | "right" | Não | Posição do widget na tela (padrão: "right") |
Nota: A URL da API é configurada automaticamente pelo widget. Você só precisa fornecer a API Key gerada no dashboard.
Variáveis de Ambiente
.env (React / Vite)
# Feedget Configuration REACT_APP_FEEDGET_API_KEY=feedget_pk_live_abc123... # ou para Vite: VITE_FEEDGET_API_KEY=feedget_pk_live_abc123...
.env.local (Next.js)
# Feedget Configuration NEXT_PUBLIC_FEEDGET_API_KEY=feedget_pk_live_abc123...
Importante: Adicione essas variáveis ao seu arquivo .env para manter suas credenciais seguras. A API key deve ser prefixada com NEXT_PUBLIC_ no Next.js para estar disponível no cliente.
Personalização
Posicionamento do Widget
Por padrão, o widget aparece no canto inferior direito. Você pode alterá-lo para o canto esquerdo usando a prop orientation:
// Widget no canto esquerdo <FeedgetWidget apiKey="feedget_pk_live_abc123..." orientation="left" /> // Widget no canto direito (padrão) <FeedgetWidget apiKey="feedget_pk_live_abc123..." orientation="right" />
Exemplo Completo
Aplicação React Completa com Create React App
// App.tsx
import React from "react";
import { FeedgetWidget } from "@feedget/widget/react";
import "@feedget/widget/styles.css";
import { MyComponent } from "./MyComponent";
function App() {
return (
<div className="app">
<header>
<h1>Minha Aplicação</h1>
</header>
<main>
<MyComponent />
</main>
<FeedgetWidget
apiKey={process.env.REACT_APP_FEEDGET_API_KEY || ""}
metadata={{
userId: "user-123",
environment: process.env.NODE_ENV
}}
/>
</div>
);
}
export default App;Troubleshooting
Widget não aparece na tela
- Verifique se você importou o CSS:
import "@feedget/widget/styles.css"; - Confirme se a API key está correta (formato:
feedget_pk_live_...) - Verifique o console do navegador para erros
- Certifique-se de que o componente está sendo renderizado (não está em uma rota condicional)
Feedbacks não são enviados
- Verifique se a API key é válida no dashboard
- Confirme que sua assinatura está ativa
- Abra o console do navegador e procure por erros de rede (Network tab)
- Verifique se não há bloqueadores de rede/firewall
Erro: "Module not found"
- Execute
npm install @feedget/widgetoupnpm install - Delete
node_modulesepackage-lock.json, depois reinstale - Verifique se está importando corretamente:
@feedget/widget/react
Problemas com TypeScript
- O pacote inclui tipos TypeScript nativamente
- Se houver erros de tipo, tente reiniciar o servidor TypeScript no VS Code
- Verifique se está usando TypeScript 4.9+
Next.js: "window is not defined"
Se encontrar esse erro no Next.js, certifique-se de que o componente está sendo renderizado apenas no cliente:
// Adicione "use client" no topo do arquivo
"use client";
import { FeedgetWidget } from "@feedget/widget/react";