/* eslint-disable @typescript-eslint/no-unused-vars */
/* eslint-disable react/destructuring-assignment */
import type { ReactNode } from 'react';
import type React from 'react';
import { createContext, useCallback, useState } from 'react';

import environment from '../../Environments/environment';
import type { CompanyDbModel } from '../../Pages/Companies/Components/CompaniesComponents.helper';

export type SelectFinancialsType = {
	companies: CompanyDbModel[];
	getCompaniesHandler: () => void;
};

export const SelectFinancials: React.Context<SelectFinancialsType> =
	createContext<SelectFinancialsType>({
		companies: [],
		getCompaniesHandler: () => {}
	});

const SelectFinancialContextProvider: React.FC<{ children: ReactNode }> = (props: {
	children: ReactNode;
}) => {
	const [companies, setCompanies] = useState<CompanyDbModel[]>([]);

	const getCompaniesHandler = useCallback(async () => {
		// await axios.get(apiUrl + backendRoutes.companies)
		// 		.then(({ data }) => {
		// 				console.log('fetched companies');
		// 				setCompanies(data);
		// 		});
	}, []);

	// eslint-disable-next-line react/jsx-no-constructed-context-values
	const contextValue = {
		companies,
		getCompaniesHandler
	};

	return (
		<SelectFinancials.Provider value={contextValue}>{props.children}</SelectFinancials.Provider>
	);
};

export default SelectFinancialContextProvider;
