import type { Component } from 'solid-js'; import { createEffect, createMemo, For, Index, Match, Show, Switch } from 'solid-js'; import { Portal } from 'solid-js/web'; import { version } from '../package.json'; import CommentBox from './components/CommentBox'; import CommentCard from './components/CommentCard'; import CommonButton from './components/CommonButton'; import { LoadingIcon } from './components/Icons'; import commentListState, { loadMore, refresh, sortingMethods, } from './controllers/commentListState'; import configProvider from './controllers/configProvider'; import getDarkStyle from './utils/getDarkStyle'; const App: Component = () => { const { config, locale } = configProvider; const { data, status, page, totalPages, count, sorting, setSorting } = commentListState; const darkModeStyle = createMemo(() => getDarkStyle(config().dark)); refresh(); createEffect( (prev: { serverURL: string; path: string }) => { if (prev.serverURL === config().serverURL && prev.path === config().path) return { serverURL: config().serverURL, path: config().path }; refresh(); return { serverURL: config().serverURL, path: config().path }; }, { serverURL: config().serverURL, path: config().path }, ); if (config().noCopyright) { // eslint-disable-next-line no-console console.log( `Comment system powered by Sodesu v${version}, source code: https://github.com/BeiyanYunyi/sodesu`, ); } return (
{count()} {' '} {locale().comment}
    {(item) => (
  • )}
{(item) => }
{ e.preventDefault(); refresh(); }} > {locale().refresh} } >
{locale().sofa}
{ e.preventDefault(); loadMore(); }} > {locale().more}
Powered by{' '} Sodesu {' '} v{version}
); }; export default App;