Configurações de Vídeo
Última atualização: 30 de julho de 2024
Visão Geral
Este documento descreve as configurações relacionadas à funcionalidade de vídeo no aplicativo Promoter.
Configurações no Redux
Localização: src/store/settings/settingsSlice.ts e src/store/settings/settingsTypes.ts
As configurações de vídeo são gerenciadas através do Redux, utilizando o slice settingsSlice.
// Definição dos tipos
export interface SettingsState {
// Outras configurações
UTILIZAVIDEO: string;
}
// Slice do Redux
const settingsSlice = createSlice({
name: "settings",
initialState,
reducers: {
setSettings: (state, action: PayloadAction<SettingsState>) => {
return {
...state,
...action.payload,
};
},
// Outros reducers
},
});
Configurações Disponíveis
| Configuração | Tipo | Valores Possíveis | Descrição |
|---|---|---|---|
| UTILIZAVIDEO | string | 'S' ou 'N' | Habilita ou desabilita o uso de vídeos |
Carregamento de Configurações
As configurações são carregadas do servidor durante o login e armazenadas no Redux.
// Serviço para obter configurações
export const getSettingsService = async () => {
try {
const response = await api.get<GetSettingsServiceResponseDTO>("/settings");
return response.data;
} catch (error) {
console.log("❌ Erro ao obter configurações:", error);
throw error;
}
};
// Ação para carregar configurações
export const loadSettings = (): AppThunk => async (dispatch) => {
try {
const settings = await getSettingsService();
dispatch(setSettings(settings));
} catch (error) {
console.log("❌ Erro ao carregar configurações:", error);
}
};
Uso das Configurações
As configurações são utilizadas em diversos componentes para determinar se a funcionalidade de vídeo deve ser exibida.
// Exemplo de uso em um componente
const { UTILIZAVIDEO } = useSelector((state: RootState) => state.settings);
// Renderização condicional
{
UTILIZAVIDEO === "S" ? (
<VideoCamera color="white" weight="bold" size={20} />
) : (
<Camera color="white" weight="bold" size={20} />
);
}
Atualização de Configurações
As configurações são atualizadas automaticamente durante a sincronização com o servidor.
// Atualização de configurações durante sincronização
export const syncSettings = (): AppThunk => async (dispatch) => {
try {
const settings = await getSettingsService();
dispatch(setSettings(settings));
return true;
} catch (error) {
console.log("❌ Erro ao sincronizar configurações:", error);
return false;
}
};
Configurações Padrão
Quando o aplicativo é iniciado pela primeira vez ou quando não é possível obter as configurações do servidor, são utilizadas configurações padrão.
// Configurações padrão
const initialState: SettingsState = {
// Outras configurações
UTILIZAVIDEO: "N", // Desabilitado por padrão
};
Considerações de Segurança
- As configurações são obtidas apenas de fontes confiáveis (servidor)
- As configurações são validadas antes de serem aplicadas
- As configurações são armazenadas de forma segura no Redux
Boas Práticas
- Validação: Validar as configurações antes de aplicá-las
- Fallback: Implementar valores padrão para quando as configurações não estiverem disponíveis
- Atualização: Atualizar as configurações regularmente
- Cache: Armazenar as configurações localmente para uso offline