diff --git a/src/dashboardWebView/components/App.tsx b/src/dashboardWebView/components/App.tsx index 5948d766..d9719a83 100644 --- a/src/dashboardWebView/components/App.tsx +++ b/src/dashboardWebView/components/App.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; -import { Spinner } from './Spinner'; +import { Spinner } from './Common/Spinner'; import useMessages from '../hooks/useMessages'; import useDarkMode from '../../hooks/useDarkMode'; -import { WelcomeScreen } from './WelcomeScreen'; +import { WelcomeScreen } from './WelcomeView/WelcomeScreen'; import { useRecoilValue } from 'recoil'; import { DashboardViewSelector, ModeAtom } from '../state'; import { Contents } from './Contents/Contents'; diff --git a/src/dashboardWebView/components/Button.tsx b/src/dashboardWebView/components/Button.tsx deleted file mode 100644 index b303db3e..00000000 --- a/src/dashboardWebView/components/Button.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import * as React from 'react'; - -export interface IButtonProps { - secondary?: boolean; - disabled?: boolean; - className?: string; - onClick: () => void; -} - -export const Button: React.FunctionComponent = ({ - onClick, - className, - disabled, - secondary, - children -}: React.PropsWithChildren) => { - return ( - - ); -}; diff --git a/src/dashboardWebView/components/Common/Button.tsx b/src/dashboardWebView/components/Common/Button.tsx new file mode 100644 index 00000000..4fc5b04f --- /dev/null +++ b/src/dashboardWebView/components/Common/Button.tsx @@ -0,0 +1,39 @@ +import * as React from 'react'; +import useThemeColors from '../../hooks/useThemeColors'; + +export interface IButtonProps { + secondary?: boolean; + disabled?: boolean; + className?: string; + onClick: () => void; +} + +export const Button: React.FunctionComponent = ({ + onClick, + className, + disabled, + secondary, + children +}: React.PropsWithChildren) => { + const { getColors } = useThemeColors(); + + return ( + + ); +}; diff --git a/src/dashboardWebView/components/ChoiceButton.tsx b/src/dashboardWebView/components/Common/ChoiceButton.tsx similarity index 96% rename from src/dashboardWebView/components/ChoiceButton.tsx rename to src/dashboardWebView/components/Common/ChoiceButton.tsx index 78021ce3..8617f672 100644 --- a/src/dashboardWebView/components/ChoiceButton.tsx +++ b/src/dashboardWebView/components/Common/ChoiceButton.tsx @@ -1,8 +1,8 @@ import { Menu } from '@headlessui/react'; import { ChevronDownIcon } from '@heroicons/react/outline'; import * as React from 'react'; -import useThemeColors from '../hooks/useThemeColors'; -import { MenuItem, MenuItems } from './Menu'; +import useThemeColors from '../../hooks/useThemeColors'; +import { MenuItem, MenuItems } from '../Menu'; export interface IChoiceButtonProps { title: string; diff --git a/src/dashboardWebView/components/DateField.tsx b/src/dashboardWebView/components/Common/DateField.tsx similarity index 71% rename from src/dashboardWebView/components/DateField.tsx rename to src/dashboardWebView/components/Common/DateField.tsx index 328bf27d..250af4ea 100644 --- a/src/dashboardWebView/components/DateField.tsx +++ b/src/dashboardWebView/components/Common/DateField.tsx @@ -1,6 +1,7 @@ import { format } from 'date-fns'; import * as React from 'react'; -import { DateHelper } from '../../helpers/DateHelper'; +import { DateHelper } from '../../../helpers/DateHelper'; +import useThemeColors from '../../hooks/useThemeColors'; export interface IDateFieldProps { className?: string; @@ -12,6 +13,7 @@ export const DateField: React.FunctionComponent = ({ value }: React.PropsWithChildren) => { const [dateValue, setDateValue] = React.useState(''); + const { getColors } = useThemeColors(); React.useEffect(() => { try { @@ -28,7 +30,7 @@ export const DateField: React.FunctionComponent = ({ } return ( - + {dateValue} ); diff --git a/src/dashboardWebView/components/Common/Spinner.tsx b/src/dashboardWebView/components/Common/Spinner.tsx new file mode 100644 index 00000000..6cf166df --- /dev/null +++ b/src/dashboardWebView/components/Common/Spinner.tsx @@ -0,0 +1,23 @@ +import * as React from 'react'; +import useThemeColors from '../../hooks/useThemeColors'; + +export interface ISpinnerProps { } + +export const Spinner: React.FunctionComponent = ( + props: React.PropsWithChildren +) => { + const { getColors } = useThemeColors(); + + return ( +
+
+
+ ); +}; diff --git a/src/dashboardWebView/components/Contents/Contents.tsx b/src/dashboardWebView/components/Contents/Contents.tsx index cad9f528..c2240a75 100644 --- a/src/dashboardWebView/components/Contents/Contents.tsx +++ b/src/dashboardWebView/components/Contents/Contents.tsx @@ -3,8 +3,8 @@ import { useRecoilValue } from 'recoil'; import { Page } from '../../models'; import { SettingsSelector } from '../../state'; import { Overview } from './Overview'; -import { Spinner } from '../Spinner'; -import { SponsorMsg } from '../SponsorMsg'; +import { Spinner } from '../Common/Spinner'; +import { SponsorMsg } from '../Layout/SponsorMsg'; import usePages from '../../hooks/usePages'; import { useEffect } from 'react'; import { Messenger } from '@estruyf/vscode/dist/client'; diff --git a/src/dashboardWebView/components/Contents/Item.tsx b/src/dashboardWebView/components/Contents/Item.tsx index 43526d2d..8245bf17 100644 --- a/src/dashboardWebView/components/Contents/Item.tsx +++ b/src/dashboardWebView/components/Contents/Item.tsx @@ -4,13 +4,13 @@ import { MarkdownIcon } from '../../../panelWebView/components/Icons/MarkdownIco import { DashboardMessage } from '../../DashboardMessage'; import { Page } from '../../models/Page'; import { SettingsSelector, ViewSelector } from '../../state'; -import { DateField } from '../DateField'; -import { Status } from '../Status'; +import { DateField } from '../Common/DateField'; import { Messenger } from '@estruyf/vscode/dist/client'; import { DashboardViewType } from '../../models'; import { ContentActions } from './ContentActions'; import { useMemo } from 'react'; import useThemeColors from '../../hooks/useThemeColors'; +import { Status } from './Status'; export interface IItemProps extends Page { } diff --git a/src/dashboardWebView/components/Status.tsx b/src/dashboardWebView/components/Contents/Status.tsx similarity index 79% rename from src/dashboardWebView/components/Status.tsx rename to src/dashboardWebView/components/Contents/Status.tsx index 58f03af7..153bc6e3 100644 --- a/src/dashboardWebView/components/Status.tsx +++ b/src/dashboardWebView/components/Contents/Status.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; import { useMemo } from 'react'; import { useRecoilValue } from 'recoil'; -import useThemeColors from '../hooks/useThemeColors'; -import { SettingsAtom } from '../state'; +import useThemeColors from '../../hooks/useThemeColors'; +import { SettingsAtom } from '../../state'; export interface IStatusProps { draft: boolean | string; @@ -45,10 +45,9 @@ export const Status: React.FunctionComponent = ({ className={` inline-block px-2 py-1 leading-none rounded-sm font-semibold uppercase tracking-wide text-xs ${getColors(`text-whisper-200 dark:text-vulcan-500`, ``)} - ${ - draftValue ? - getColors(`bg-red-500`, 'bg-[var(--vscode-statusBarItem-errorBackground)] text-[var(--vscode-statusBarItem-errorForeground)]') : - getColors(`bg-teal-500`, 'bg-[var(--vscode-badge-background)] text-[var(--vscode-badge-foreground)]') + ${draftValue ? + getColors(`bg-red-500`, 'bg-[var(--vscode-statusBarItem-errorBackground)] text-[var(--vscode-statusBarItem-errorForeground)]') : + getColors(`bg-teal-500`, 'bg-[var(--vscode-badge-background)] text-[var(--vscode-badge-foreground)]') }`} > {draftValue ? 'Draft' : 'Published'} diff --git a/src/dashboardWebView/components/DataView/DataFormControls.tsx b/src/dashboardWebView/components/DataView/DataFormControls.tsx index 58e3c31f..6babd4ef 100644 --- a/src/dashboardWebView/components/DataView/DataFormControls.tsx +++ b/src/dashboardWebView/components/DataView/DataFormControls.tsx @@ -1,7 +1,7 @@ import * as React from 'react'; import { useForm } from 'uniforms'; import { SubmitField } from 'uniforms-unstyled'; -import { Button } from '../Button'; +import { Button } from '../Common/Button'; export interface IDataFormControlsProps { model: any | null; @@ -17,6 +17,7 @@ export const DataFormControls: React.FunctionComponent = return (
+
)}

Create or modify your {selectedData.title.toLowerCase()} data diff --git a/src/dashboardWebView/components/Header/Header.tsx b/src/dashboardWebView/components/Header/Header.tsx index af352451..07c5a232 100644 --- a/src/dashboardWebView/components/Header/Header.tsx +++ b/src/dashboardWebView/components/Header/Header.tsx @@ -5,8 +5,6 @@ import { Filter } from './Filter'; import { Folders } from './Folders'; import { Settings, NavigationType } from '../../models'; import { DashboardMessage } from '../../DashboardMessage'; -import { Startup } from '../Startup'; -import { Navigation } from '../Navigation'; import { Grouping } from '.'; import { ViewSwitch } from './ViewSwitch'; import { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'; @@ -14,7 +12,7 @@ import { CategoryAtom, GroupingSelector, SortingAtom, TagAtom } from '../../stat import { Messenger } from '@estruyf/vscode/dist/client'; import { ClearFilters } from './ClearFilters'; import { MediaHeaderTop } from '../Media/MediaHeaderTop'; -import { ChoiceButton } from '../ChoiceButton'; +import { ChoiceButton } from '../Common/ChoiceButton'; import { MediaHeaderBottom } from '../Media/MediaHeaderBottom'; import { Tabs } from './Tabs'; import { CustomScript } from '../../../models'; @@ -28,6 +26,8 @@ import { GroupOption } from '../../constants/GroupOption'; import usePagination from '../../hooks/usePagination'; import { PaginationStatus } from './PaginationStatus'; import useThemeColors from '../../hooks/useThemeColors'; +import { Startup } from './Startup'; +import { Navigation } from './Navigation'; export interface IHeaderProps { header?: React.ReactNode; @@ -141,18 +141,16 @@ export const Header: React.FunctionComponent = ({ }, [location.search]); return ( -
-
+
@@ -175,9 +173,8 @@ export const Header: React.FunctionComponent = ({
-
+
@@ -188,9 +185,8 @@ export const Header: React.FunctionComponent = ({
@@ -219,9 +215,8 @@ export const Header: React.FunctionComponent = ({ (totalPages || 0) > pageSetNr && (!grouping || grouping === GroupOption.none) && (
diff --git a/src/dashboardWebView/components/Navigation.tsx b/src/dashboardWebView/components/Header/Navigation.tsx similarity index 90% rename from src/dashboardWebView/components/Navigation.tsx rename to src/dashboardWebView/components/Header/Navigation.tsx index 2d405f10..adfc377c 100644 --- a/src/dashboardWebView/components/Navigation.tsx +++ b/src/dashboardWebView/components/Header/Navigation.tsx @@ -1,8 +1,8 @@ import * as React from 'react'; import { useRecoilState, useRecoilValue } from 'recoil'; -import { Tab } from '../constants/Tab'; -import useThemeColors from '../hooks/useThemeColors'; -import { SettingsAtom, TabAtom, TabInfoAtom } from '../state'; +import { Tab } from '../../constants/Tab'; +import useThemeColors from '../../hooks/useThemeColors'; +import { SettingsAtom, TabAtom, TabInfoAtom } from '../../state'; export interface INavigationProps { totalPages: number; @@ -30,18 +30,17 @@ const NavigationItem: React.FunctionComponent = ({ return (