diff --git a/assets/SpinIcon.js b/assets/SpinIcon.js index e36ac4b..7561da4 100644 --- a/assets/SpinIcon.js +++ b/assets/SpinIcon.js @@ -3,7 +3,7 @@ import React from "react"; export const SpinIcon = ({ strokeWidth = 1.5, ...otherProps }) => (
    - {isLoading ? ( + {isExpensesLoading ? (
    { + .map((expense, index) => { return (
    - {data?.gabinete?.active_secretaries?.map((secretary) => { - return ( - <> -
    - - Nome:{" "} - - {secretary?.name} -
    -
    - - Grupo funcional: - - {secretary?.group} -
    -
    - - Cargo:{" "} - - {secretary?.role} -
    -
    - - Período de exercício:{" "} - {" "} - {secretary?.period} -
    -
    - - Remuneração mensal:{" "} - - Em breve -
    - - ); - })} + {isGabineteLoading ? ( +
    + +

    + Buscando dados do gabinete do parlamentar, aguarde + um momento. +

    +
    + ) : ( + + {gabineteError && ( + + Houve um erro ao buscar dados do gabinete + + )} + {!gabineteError && + gabinete.active_secretaries?.map( + (secretary, index) => { + return ( + +
    + + Nome:{" "} + + {secretary?.name} +
    +
    + + Grupo funcional: + + {secretary?.group} +
    +
    + + Cargo:{" "} + + {secretary?.role} +
    +
    + + Período de exercício:{" "} + {" "} + {secretary?.period} +
    +
    + + Remuneração mensal:{" "} + + Em breve +
    +
    + ); + }, + )} +
    + )}
    @@ -499,41 +523,60 @@ export default function FederalDeputy({ data }) { - {data?.speeches?.length === 0 && ( - <> - - Não existe vídeos para esse parlamentar - - + {speechesError && ( + + Houve um erro ao buscar os vídeos para esse parlamentar + )} - {data?.speeches?.length > 0 && ( - <> -
    - Os vídeos abaixo foram capturados pela página do - deputado no site da câmara dos deputados, se não - conseguir visualizar aqui clique no link que redireciona - para a página da câmara. -
    -
      - {data?.speeches.map((speeche) => { - return ( - - ); - })} -
    - + {isSpeechesLoading ? ( +
    + +

    + Buscando videos, aguarde um momento. +

    +
    + ) : ( + + {!speechesError && speeches.length === 0 && ( + <> + + Não existe vídeos para esse parlamentar + + + )} + {!speechesError && speeches.length > 0 && ( + <> +
    + Os vídeos abaixo foram capturados pela página do + deputado no site da câmara dos deputados, se não + conseguir visualizar aqui clique no link que + redireciona para a página da câmara. +
    +
      + {speeches.map((speeche) => { + return ( + + ); + })} +
    + + )} +
    )}
    @@ -853,3 +896,35 @@ export default function FederalDeputy({ data }) { ); } + +function getSpeechesAndGabineteRequestsPromises( + routeParam, + setIsSpeechesLoading, + setIsGabineteLoading, +) { + const abortReqController = new AbortController(); + const abortReqSignal = abortReqController.signal; + + const requestsPromises = [ + // get videos + axios + .get( + `https://pub-ef5d1d80d62c44a1a00e2d05a2d5b85c.r2.dev/${routeParam}.json`, + { signal: abortReqSignal }, + ) + .finally(() => { + setIsSpeechesLoading(false); + }), + // get gabinete (Adjust CORS policy from R2) + axios + .get( + `https://pub-bfddf9199db94ff8b19b7d931548c52.r2.dev/${routeParam}.json`, + { sginal: abortReqSignal }, + ) + .finally(() => { + setIsGabineteLoading(false); + }), + ]; + + return requestsPromises; +} diff --git a/utils/index.js b/utils/index.js index 2b12316..4dbc8c0 100644 --- a/utils/index.js +++ b/utils/index.js @@ -142,27 +142,6 @@ export function checkNullObject(obj) { return true; } -export function propertyValuesArray(arr, propertyKey, type) { - if (!Array.isArray(arr)) { - throw new TypeError("First argument must be an array"); - } - if (typeof propertyKey !== "string") { - throw new TypeError("Second argument must be a string"); - } - - return arr - .map((obj) => { - if (obj && typeof obj === "object" && obj.hasOwnProperty(propertyKey)) { - if (type === "number") { - return Number(obj[propertyKey]); - } - return String(obj[propertyKey]); - } - return null; - }) - .filter((value) => value !== null); -} - export function findFirstMp4Url(data) { for (let i = 0; i < data.length; i++) { const videoLinks = data[i].video_links; @@ -177,35 +156,6 @@ export function findFirstMp4Url(data) { return null; } -//this function is needed to be called in order to bypass Camara's media provider (.mp4 url) -export async function fetchVideos(video_links) { - video_links.forEach((item) => { - if (Array.isArray(item.video_links) && item.video_links.length > 0) { - item.video_links.forEach(async (videoLink) => { - const url = `https://www.camara.leg.br/evento-legislativo/${item.evento_id}/?${videoLink.video_param}&trechosOrador=${item.deputado}&crawl=no`; - - setTimeout(async () => { - await fetch(url) - .then((response) => { - console.log("tetando pegar o video ===> ".url); - - if (!response.ok) { - console.log("Network response was not ok ===> ".url); - } - return response.text(); - }) - .then((data) => { - console.log("processou ==> ", url); - }) - .catch((error) => { - console.log("erro fetching response was not ok ===> ".url); - }); - }, 249); - }); - } - }); -} - export function getCapitalizedPhrase(phrase) { const wordsFromPhrase = phrase.split(" ");