import React, { useCallback, useContext, useMemo } from 'react'; import Navbar from 'renderer/components/Navbar'; import { LoginContext } from '../components/Context'; import Select from 'react-select'; import { ErrorBoundary } from 'renderer/components/ErrrorBoundary'; import { Link } from 'react-router-dom'; const ipcRenderer = window.electron.ipcRenderer; const Settings = () => { const { selectedPrinter, setSelectedPrinter, printers } = useContext(LoginContext); const handleChange = useCallback( (field: string, value: any) => { ipcRenderer.invoke('setSelectedPrinters', { ...selectedPrinter, [field]: value.value, }); setSelectedPrinter({ ...selectedPrinter, [field]: value.value }); }, [selectedPrinter] ); const getItemValue = useCallback( (label: string) => { return printers.find((item: any) => item.label === label) ? { label, value: label } : false; }, [printers] ); const scaleOption = [ { label: "Empty scale", value: "" }, { label: "noscale", value: "noscale" }, { label: "shrink", value: "shrink" }, { label: "fit", value: "fit" }, ] const getScaleValue = useCallback((label: string) => { return scaleOption.find((item: any) => item.value === label) ? scaleOption.find((item: any) => item.value === label) : false; }, [scaleOption]) const options = useMemo(() => { return printers.map((item: any) => ({ label: item.label, value: item.label, })); }, [printers]); return (

Select Printers

handleChange('labelPrinter', val)} options={options} />