/* eslint-disable react/destructuring-assignment */
import type { ReactNode } from 'react';
import type React from 'react';
import { createContext, useState } from 'react';

import type { SigninContextModel } from './SigninContextModel';

export const SignInContext: React.Context<SigninContextModel> = createContext<SigninContextModel>({
	credentials: [],
	signIn: () => {},
	username: '',
	password: ''
});

const TodosContextProvider: React.FC<{ children: ReactNode }> = (props: {
	children: ReactNode;
}) => {
	const [username, setUsername] = useState('');
	const [password, setPassword] = useState('');
	function signInHandler(user: string, pass: string) {
		setUsername(user);
		setPassword(pass);
	}

	// eslint-disable-next-line react/jsx-no-constructed-context-values
	const contextValue: SigninContextModel = {
		credentials: [],
		signIn: signInHandler,
		username,
		password
	};

	return <SignInContext.Provider value={contextValue}>{props.children}</SignInContext.Provider>;
};

export default TodosContextProvider;
