
Company News
Meet the Socket Team at RSAC and BSidesSF 2026
Join Socket for live demos, rooftop happy hours, and one-on-one meetings during BSidesSF and RSA 2026 in San Francisco.
@solucx/react-native-solucx-widget
Advanced tools
Um widget React Native modular para coleta de feedback e pesquisas de satisfação, desenvolvido pela SoluCX seguindo princípios de Clean Code e arquitetura escalável.
O SoluCX Widget permite integrar pesquisas de satisfação diretamente em aplicações React Native/Expo de forma simples e flexível. Desenvolvido para empresas que precisam coletar feedback em tempo real através de diferentes modalidades de apresentação.
npm install @solucx/react-native-solucx-widget
import React from 'react';
import { SoluCXWidget } from '@solucx/react-native-solucx-widget';
export default function MyScreen() {
return (
<SoluCXWidget
soluCXKey='sua-chave-solucx'
type='bottom'
data={{
journey: 'checkout_flow',
name: 'João Silva',
email: 'joao@email.com',
store_id: 'loja_01',
amount: 150.0
}}
options={{
height: 400
}}
/>
);
}
Widget fixo na parte inferior da tela, ideal para feedback não intrusivo.
<SoluCXWidget type='bottom' {...props} />
Widget fixo no topo da tela, perfeito para notificações importantes.
<SoluCXWidget type='top' {...props} />
Sobreposição centralizada que bloqueia interação com o fundo.
<SoluCXWidget type='modal' {...props} />
Integrado ao fluxo normal do layout, respeitando a posição no código.
<SoluCXWidget type='inline' {...props} />
| Propriedade | Tipo | Obrigatório | Descrição |
|---|---|---|---|
soluCXKey | string | ✅ | Chave de autenticação SoluCX |
type | WidgetType | ✅ | Modo de renderização |
data | WidgetData | ✅ | Dados do cliente/transação |
options | WidgetOptions | ✅ | Configurações do widget |
interface WidgetData {
// Identificadores
transaction_id?: string;
customer_id?: string;
// Dados do cliente
name?: string;
email?: string;
phone?: string;
birth_date?: string; // Formato: YYYY-MM-DD
document?: string;
// Contexto da transação
store_id?: string;
store_name?: string;
employee_id?: string;
employee_name?: string;
amount?: number;
score?: number;
journey?: string; // Nome da jornada/fluxo
// Parâmetros customizados (prefixo param_)
param_REGIAO?: string;
[key: string]: string | number | undefined;
}
interface WidgetOptions {
height?: number; // Altura fixa em pontos (points, não pixels)
// Se não fornecido, será dinâmica baseada em eventos de resize
// Se fornecido, será fixa independente do tipo de widget
retry?: {
attempts?: number; // Tentativas (padrão: 3)
interval?: number; // Intervalo em ms (padrão: 1000)
};
waitDelayAfterRating?: number; // Delay após avaliação
}
Comportamento da Altura (height):
Altura Dinâmica (padrão): Quando height não é fornecido, o widget se ajusta automaticamente baseado em eventos de resize do conteúdo. Isso funciona para todos os tipos: bottom, top, inline e modal.
// Altura dinâmica - se adapta ao conteúdo
<SoluCXWidget
type='bottom'
options={{}} // ou options={{ retry: { attempts: 3 } }}
{...props}
/>
Altura Fixa: Quando height é especificado, o valor é fixo e eventos de resize são ignorados. Funciona para todos os tipos de widget.
// Altura fixa de 400 pontos
<SoluCXWidget type='modal' options={{ height: 400 }} {...props} />
⚠️ Importante: O valor de height é sempre em pontos (points), não pixels, seguindo o padrão do React e React Native. O sistema operacional converte automaticamente para pixels considerando a densidade da tela.
type WidgetType = 'bottom' | 'top' | 'inline' | 'modal';
O widget processa automaticamente os seguintes eventos da pesquisa:
FORM_OPENED - Widget foi abertoFORM_CLOSE - Usuário fechou o widgetFORM_COMPLETED - Pesquisa concluídaFORM_PARTIALCOMPLETED - Completada parcialmenteFORM_RESIZE - Widget redimensionadoFORM_ERROR - Erro no carregamentoO widget controla automaticamente:
const widgets = ['bottom', 'top'] as WidgetType[];
return (
<>
{widgets.map((type) => (
<SoluCXWidget
key={type}
soluCXKey={key}
type={type}
data={data}
options={options}
/>
))}
</>
);
⚠️ Comportamento Crítico: A posição no JSX não determina onde widgets top, bottom e modal aparecem:
// ❌ Widget "bottom" sempre aparece embaixo, independente da posição
<Text>Conteúdo antes</Text>
<SoluCXWidget type="bottom" {...props} />
<Text>Conteúdo depois</Text>
// ✅ Apenas "inline" respeita a posição no código
<Text>Conteúdo antes</Text>
<SoluCXWidget type="inline" {...props} />
<Text>Conteúdo depois</Text>
// Verificações essenciais:
// ✅ Chave SoluCX válida?
// ✅ Conectividade com internet?
// ✅ Logs do WebView no console?
// ✅ Dados obrigatórios preenchidos?
// Debug de comunicação:
const handleMessage = (message: string) => {
console.log('Widget event:', message);
};
// Verificar se JavaScript foi injetado corretamente
// Ajustar dimensões para o dispositivo:
const { height } = Dimensions.get('window');
const options = {
height: Math.min(height * 0.6, 400)
};
| Versão | React Native | Expo | iOS | Android |
|---|---|---|---|---|
| 1.0.x | 0.70+ | 50+ | 11+ | API 21+ |
Este pacote é proprietário da SoluCX. O uso é restrito a clientes licenciados da plataforma SoluCX.
FAQs
The React Native SDK for Solucx Widget
The npm package @solucx/react-native-solucx-widget receives a total of 336 weekly downloads. As such, @solucx/react-native-solucx-widget popularity was classified as not popular.
We found that @solucx/react-native-solucx-widget demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Join Socket for live demos, rooftop happy hours, and one-on-one meetings during BSidesSF and RSA 2026 in San Francisco.

Research
/Security News
Malicious Packagist packages disguised as Laravel utilities install an encrypted PHP RAT via Composer dependencies, enabling remote access and C2 callbacks.

Research
/Security News
OpenVSX releases of Aqua Trivy 1.8.12 and 1.8.13 contained injected natural-language prompts that abuse local AI coding agents for system inspection and potential data exfiltration.