import { useState, useEffect } from 'react'; import { MdOutlineDragIndicator } from 'react-icons/md'; import { sortableContainer, sortableElement } from '@muetab/react-sortable-hoc'; import { toast } from 'react-toastify'; import variables from 'config/variables'; import Greeting from './overview_skeletons/Greeting'; import Clock from './overview_skeletons/Clock'; import Quote from './overview_skeletons/Quote'; import QuickLinks from './overview_skeletons/QuickLinks'; import Date from './overview_skeletons/Date'; import Message from './overview_skeletons/Message'; import EventBus from 'utils/eventbus'; import defaults from 'config/default'; import { PreferencesWrapper } from 'components/Layout'; const widget_name = { greeting: variables.getMessage('settings:sections.greeting.title'), time: variables.getMessage('settings:sections.time.title'), quicklinks: variables.getMessage('settings:sections.quicklinks.title'), quote: variables.getMessage('settings:sections.quote.title'), date: variables.getMessage('settings:sections.date.title'), message: variables.getMessage('settings:sections.message.title'), }; const SortableItem = sortableElement(({ value }) => (
  • {widget_name[value]}
  • )); const SortableContainer = sortableContainer(({ children }) => ( )); const Overview = () => { const [items, setItems] = useState( () => JSON.parse(localStorage.getItem('order')) || defaults.order, ); const arrayMove = (array, oldIndex, newIndex) => { const result = Array.from(array); const [removed] = result.splice(oldIndex, 1); result.splice(newIndex, 0, removed); return result; }; const onSortEnd = ({ oldIndex, newIndex }) => { setItems((prevItems) => arrayMove(prevItems, oldIndex, newIndex)); }; const reset = () => { localStorage.setItem('order', JSON.stringify(defaults.order)); setItems(defaultOrder); toast(variables.getMessage('toasts.reset')); }; const enabled = (setting) => { switch (setting) { case 'quicklinks': return localStorage.getItem('quicklinksenabled') !== 'false'; default: return localStorage.getItem(setting) !== 'false'; } }; const getTab = (value) => { switch (value) { case 'greeting': return ; case 'time': return ; case 'quicklinks': return ; case 'quote': return ; case 'date': return ; case 'message': return ; default: return null; } }; useEffect(() => { localStorage.setItem('order', JSON.stringify(items)); variables.stats.postEvent('setting', 'Widget order'); EventBus.emit('refresh', 'widgets'); }, [items]); return ( {variables.getMessage('marketplace:product.overview')}
    {variables.getMessage('welcome:buttons.preview')}
    {items.map((value, index) => { if (!enabled(value)) { return null; } return (
    {getTab(value)}
    ); })}
    {variables.getMessage('settings:sections.order.title')} {items.map((value, index) => { if (!enabled(value)) { return null; } return ; })}
    ); }; export { Overview as default, Overview };