diff --git a/package.json b/package.json
index af15912..907d0c6 100644
--- a/package.json
+++ b/package.json
@@ -29,6 +29,7 @@
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-dropzone": "^14.2.3",
+ "react-icons": "^4.9.0",
"react-promise-suspense": "^0.3.4",
"react-redux": "^8.0.5"
},
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 29dfd3c..f4c38fc 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -40,6 +40,9 @@ dependencies:
react-dropzone:
specifier: ^14.2.3
version: 14.2.3(react@18.2.0)
+ react-icons:
+ specifier: ^4.9.0
+ version: 4.9.0(react@18.2.0)
react-promise-suspense:
specifier: ^0.3.4
version: 0.3.4
@@ -6690,6 +6693,15 @@ packages:
use-sidecar: 1.1.2(@types/react@18.2.7)(react@18.2.0)
dev: false
+ /react-icons@4.9.0(react@18.2.0):
+ resolution:
+ { integrity: sha512-ijUnFr//ycebOqujtqtV9PFS7JjhWg0QU6ykURVHuL4cbofvRCf3f6GMn9+fBktEFQOIVZnuAYLZdiyadRQRFg== }
+ peerDependencies:
+ react: '*'
+ dependencies:
+ react: 18.2.0
+ dev: false
+
/react-is@16.13.1:
resolution:
{ integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== }
diff --git a/src/components/App.tsx b/src/components/App.tsx
index 5abf092..6505f44 100644
--- a/src/components/App.tsx
+++ b/src/components/App.tsx
@@ -3,6 +3,7 @@ import { SelectFile } from './SelectFile';
import { FileListing } from '~/features/file-listing/FileListing';
import { Footer } from './Footer';
+import { Toolbar } from './Toolbar';
function App() {
return (
@@ -11,9 +12,8 @@ function App() {
-
-
-
+
+
diff --git a/src/components/Toolbar.tsx b/src/components/Toolbar.tsx
new file mode 100644
index 0000000..bfab2c1
--- /dev/null
+++ b/src/components/Toolbar.tsx
@@ -0,0 +1,23 @@
+import { Button, HStack, Icon, useDisclosure } from '@chakra-ui/react';
+import { MdSettings } from 'react-icons/md';
+import { SettingsModal } from '~/modals/SettingsModal';
+
+export function Toolbar() {
+ const {
+ isOpen: isSettingsModalOpen,
+ onClose: onSettingsModalClose,
+ getButtonProps: getSettingsButtonProps,
+ } = useDisclosure();
+
+ return (
+ <>
+
+
+
+
+ >
+ );
+}
diff --git a/src/modals/SettingsModal.tsx b/src/modals/SettingsModal.tsx
new file mode 100644
index 0000000..869d19b
--- /dev/null
+++ b/src/modals/SettingsModal.tsx
@@ -0,0 +1,42 @@
+import {
+ Button,
+ HStack,
+ Modal,
+ ModalBody,
+ ModalCloseButton,
+ ModalContent,
+ ModalFooter,
+ ModalHeader,
+ ModalOverlay,
+} from '@chakra-ui/react';
+
+export interface SettingsModalProps {
+ onClose: () => void;
+ isOpen: boolean;
+}
+
+export function SettingsModal({ isOpen, onClose }: SettingsModalProps) {
+ return (
+
+
+
+ 应用设置
+
+
+ Hallo
+ Thank you, thank you very much.
+ Ha-Halo, thank you
+ Thank you very much!
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/src/theme.ts b/src/theme.ts
index 10724a4..b7c85ea 100644
--- a/src/theme.ts
+++ b/src/theme.ts
@@ -1,6 +1,24 @@
import { extendTheme } from '@chakra-ui/react';
export const theme = extendTheme({
+ fonts: {
+ body: [
+ '-system-ui,-apple-system,BlinkMacSystemFont',
+ 'Source Han Sans CN,Noto Sans CJK SC',
+ 'Segoe UI,Helvetica,Arial,sans-serif',
+ 'Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol',
+ ].join(','),
+ },
+ components: {
+ Button: {
+ baseStyle: {
+ fontWeight: 'normal',
+ },
+ defaultProps: {
+ colorScheme: 'teal',
+ },
+ },
+ },
styles: {
global: {
body: {