import React, { FC, useState } from 'react' import { Button, Card, CardBody, Notice } from '@wordpress/components' import { useI18n } from '@wordpress/react-i18n' import apiFetch from '@wordpress/api-fetch' import dark from '../../assets/img/dark.png' const ToggleDarkMode: FC = () => { const shopAddressConfigured = // @ts-expect-error 2339 window.shopDetails?.darkMode || false const [isSaving, setIsSaving] = useState(false) const [error, setError] = useState() const [darkModeActive, setDarkModeActive] = useState( shopAddressConfigured ) const { __ } = useI18n() const handleToggleChange = async (newValue: boolean) => { setIsSaving(true) setError(undefined) try { await apiFetch({ path: '/posten-bring-checkout/dark-mode', method: 'POST', data: { darkMode: newValue }, }) setDarkModeActive(newValue) } catch (e) { setError( __( 'An error occurred while updating the dark mode setting. Please try again.', 'posten-bring-checkout' ) ) } finally { setIsSaving(false) } } const turnOffText = __('Turn Off', 'posten-bring-checkout') const turnOnText = __('Turn On', 'posten-bring-checkout') const enabledText = __('Enabled', 'posten-bring-checkout') const disabledText = __('Disabled', 'posten-bring-checkout') return (

{__('Dark mode', 'posten-bring-checkout')}{' '} {darkModeActive ? enabledText : disabledText}

{__( 'If your theme has a dark color palette, you can enable dark styling of the Posten Bring Checkout components.', 'posten-bring-checkout' )}

{__('View screenshot', 'posten-bring-checkout')}
{error && ( {error} )}
) } export default ToggleDarkMode