From 2feebec64ddab412923fdb1dd23627de615b1e8b Mon Sep 17 00:00:00 2001
From: IRBorisov <8611739+IRBorisov@users.noreply.github.com>
Date: Sun, 27 Aug 2023 00:19:19 +0300
Subject: [PATCH] Improve UI, start refactoring colors
---
.vscode/settings.json | 8 ++
README.md | 2 +-
rsconcept/frontend/src/components/Footer.tsx | 2 +-
.../frontend/src/components/GraphThemes.ts | 98 +++++++++++++++++++
.../src/components/Help/InfoCstClass.tsx | 15 ++-
.../src/components/Help/InfoCstStatus.tsx | 14 ++-
.../frontend/src/context/LibraryContext.tsx | 19 ++--
.../frontend/src/context/ThemeContext.tsx | 9 +-
.../src/pages/LibraryPage/SearchPanel.tsx | 30 ++++--
.../frontend/src/pages/LibraryPage/index.tsx | 13 ++-
.../src/pages/RSFormPage/EditorItems.tsx | 9 +-
.../src/pages/RSFormPage/EditorRSForm.tsx | 2 +-
.../src/pages/RSFormPage/EditorTermGraph.tsx | 33 ++++---
.../frontend/src/pages/RSFormPage/RSTabs.tsx | 2 +-
.../pages/RSFormPage/elements/StatusBar.tsx | 8 +-
.../elements/ViewSideConstituents.tsx | 14 +--
.../src/pages/UserProfilePage/UserTabs.tsx | 2 +-
rsconcept/frontend/src/utils/color.ts | 34 +++++++
rsconcept/frontend/src/utils/models.ts | 7 +-
rsconcept/frontend/src/utils/staticUI.ts | 56 ++++-------
20 files changed, 276 insertions(+), 101 deletions(-)
create mode 100644 rsconcept/frontend/src/components/GraphThemes.ts
create mode 100644 rsconcept/frontend/src/utils/color.ts
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 6f99defc..25dbb65d 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -29,5 +29,13 @@
"name": "django",
"depth": 5
}
+ ],
+ "colorize.include": [".tsx", ".jsx", ".ts", ".js"],
+ "colorize.languages": [
+ "typescript",
+ "javascript",
+ "css",
+ "typescriptreact",
+ "javascriptreact"
]
}
\ No newline at end of file
diff --git a/README.md b/README.md
index 5dee022a..062a43b8 100644
--- a/README.md
+++ b/README.md
@@ -53,7 +53,7 @@ This readme file is used mostly to document project dependencies
- ESLint - - + - Colorizediff --git a/rsconcept/frontend/src/components/Footer.tsx b/rsconcept/frontend/src/components/Footer.tsx index c476ba77..feffc5e2 100644 --- a/rsconcept/frontend/src/components/Footer.tsx +++ b/rsconcept/frontend/src/components/Footer.tsx @@ -11,7 +11,7 @@ function Footer() { Справка
-
+
{info.text}
-
diff --git a/rsconcept/frontend/src/components/Help/InfoCstStatus.tsx b/rsconcept/frontend/src/components/Help/InfoCstStatus.tsx
index d2e05005..76599c60 100644
--- a/rsconcept/frontend/src/components/Help/InfoCstStatus.tsx
+++ b/rsconcept/frontend/src/components/Help/InfoCstStatus.tsx
@@ -1,19 +1,25 @@
+import { useConceptTheme } from '../../context/ThemeContext';
import { prefixes } from '../../utils/constants';
-import { mapStatusInfo } from '../../utils/staticUI';
+import { getCstStatusColor, mapStatusInfo } from '../../utils/staticUI';
interface InfoCstStatusProps {
title?: string
}
function InfoCstStatus({ title }: InfoCstStatusProps) {
+ const { colors } = useConceptTheme();
+
return (
-
+
{info.text}
-
diff --git a/rsconcept/frontend/src/context/LibraryContext.tsx b/rsconcept/frontend/src/context/LibraryContext.tsx
index 5ff2c251..dcb8e1fe 100644
--- a/rsconcept/frontend/src/context/LibraryContext.tsx
+++ b/rsconcept/frontend/src/context/LibraryContext.tsx
@@ -43,16 +43,23 @@ export const LibraryState = ({ children }: LibraryStateProps) => {
const filter = useCallback(
(params: ILibraryFilter) => {
let result = items;
- if (params.ownedBy) {
- result = result.filter(item =>
- item.owner === params.ownedBy
- || user?.subscriptions.includes(item.id));
+ if (params.is_owned) {
+ result = result.filter(item => item.owner === user?.id);
}
if (params.is_common !== undefined) {
result = result.filter(item => item.is_common === params.is_common);
}
- if (params.queryMeta) {
- result = result.filter(item => matchLibraryItem(params.queryMeta!, item));
+ if (params.is_canonical !== undefined) {
+ result = result.filter(item => item.is_canonical === params.is_canonical);
+ }
+ if (params.is_subscribed !== undefined) {
+ result = result.filter(item => user?.subscriptions.includes(item.id));
+ }
+ if (params.is_personal !== undefined) {
+ result = result.filter(item => user?.subscriptions.includes(item.id) || item.owner === user?.id);
+ }
+ if (params.query) {
+ result = result.filter(item => matchLibraryItem(params.query!, item));
}
return result;
}, [items, user]);
diff --git a/rsconcept/frontend/src/context/ThemeContext.tsx b/rsconcept/frontend/src/context/ThemeContext.tsx
index c7208b7e..2a308e5e 100644
--- a/rsconcept/frontend/src/context/ThemeContext.tsx
+++ b/rsconcept/frontend/src/context/ThemeContext.tsx
@@ -1,12 +1,14 @@
import { createContext, useContext, useLayoutEffect, useMemo, useState } from 'react';
import useLocalStorage from '../hooks/useLocalStorage';
+import { darkT, IColorTheme, lightT } from '../utils/color';
interface IThemeContext {
darkMode: boolean
noNavigation: boolean
viewportHeight: string
mainHeight: string
+ colors: IColorTheme
toggleDarkMode: () => void
toggleNoNavigation: () => void
}
@@ -28,6 +30,7 @@ interface ThemeStateProps {
export const ThemeState = ({ children }: ThemeStateProps) => {
const [darkMode, setDarkMode] = useLocalStorage('darkMode', false);
+ const [colors, setColors] = useState{title}
}
- { [... mapStatusInfo.values()].map(
- (info, index) => {
+ { [... mapStatusInfo.entries()].map(
+ ([status, info], index) => {
return (