From 7a855b57cc03ce8b3425232aaa5b5f7da1282c19 Mon Sep 17 00:00:00 2001 From: Roland Date: Wed, 5 Apr 2023 14:48:13 -0600 Subject: [PATCH] Fetching tags globally every 30 seconds, rather than for each usage of Tags. --- app/src/App.js | 28 ++++++++++++++++------------ app/src/Dashboard.js | 2 +- app/src/Tags.js | 10 ++-------- app/src/components/Archive.js | 6 ++---- app/src/components/Download.js | 6 ++---- app/src/components/FilePreview.js | 7 +++---- app/src/components/Files.js | 6 ++---- app/src/components/VideoPlayer.js | 6 ++---- 8 files changed, 30 insertions(+), 41 deletions(-) diff --git a/app/src/App.js b/app/src/App.js index d9a9127e..447fa869 100644 --- a/app/src/App.js +++ b/app/src/App.js @@ -19,7 +19,7 @@ import {Donate} from "./components/Donate"; import {useEventsInterval} from "./Events"; import {SemanticToastContainer} from "react-semantic-toasts-2"; import {FilePreviewWrapper} from "./components/FilePreview"; -import {TagsContext, useTags} from "./Tags"; +import {TagsContext, useTags, useTagsInterval} from "./Tags"; function PageNotFound() { const {t} = useContext(ThemeContext); @@ -77,19 +77,23 @@ const router = createBrowserRouter(createRoutesFromElements( - - {/* Context and style to handle switching between mobile/computer. */} - - {/* Toasts can be on any page. */} - - - - - - - + + + {/* Context and style to handle switching between mobile/computer. */} + + {/* Toasts can be on any page. */} + + + + + + + + } diff --git a/app/src/Dashboard.js b/app/src/Dashboard.js index fee0f472..bc1d78b6 100644 --- a/app/src/Dashboard.js +++ b/app/src/Dashboard.js @@ -12,7 +12,7 @@ import {Divider, Icon, Message} from "semantic-ui-react"; import Grid from "semantic-ui-react/dist/commonjs/collections/Grid"; import {refreshFiles} from "./api"; import _ from "lodash"; -import {TagsDashboard, TagsProvider} from "./Tags"; +import {TagsDashboard} from "./Tags"; function FlagsMessages({flags}) { if (!flags) { diff --git a/app/src/Tags.js b/app/src/Tags.js index 301e8ffd..8710cfdb 100644 --- a/app/src/Tags.js +++ b/app/src/Tags.js @@ -122,7 +122,7 @@ export const useTagsInterval = () => { const tagsValue = useTags(); const {fetchTags} = tagsValue; - useRecurringTimeout(fetchTags, 10_000); + useRecurringTimeout(fetchTags, 30_000); return tagsValue } @@ -338,7 +338,7 @@ export const TagsSelector = ({selectedTagNames = [], onToggle = _.noop, onAdd = } -const Dashboard = () => { +export const TagsDashboard = () => { const {tagNames, TagsLinkGroup} = React.useContext(TagsContext); let availableTagsGroup = ; @@ -390,12 +390,6 @@ export const TagsDropdown = ({value = [], onChange, ...props}) => { /> } -export const TagsDashboard = () => { - return - - -} - export const TagsProvider = ({children}) => { const value = useTagsInterval(); diff --git a/app/src/components/Archive.js b/app/src/components/Archive.js index a4220075..eb3f35e3 100644 --- a/app/src/components/Archive.js +++ b/app/src/components/Archive.js @@ -43,7 +43,7 @@ import _ from "lodash"; import {ThemeContext} from "../contexts/contexts"; import {Button, Card, CardIcon, Header, Loader, Placeholder, Segment} from "./Theme"; import {SortableTable} from "./SortableTable"; -import {taggedImageLabel, TagsProvider, TagsSelector} from "../Tags"; +import {taggedImageLabel, TagsSelector} from "../Tags"; function ArchivePage() { const [deleteOpen, setDeleteOpen] = useState(false); @@ -173,9 +173,7 @@ function ArchivePage() { - - - + diff --git a/app/src/components/Download.js b/app/src/components/Download.js index e884547f..c007033e 100644 --- a/app/src/components/Download.js +++ b/app/src/components/Download.js @@ -7,7 +7,7 @@ import {ThemeContext} from "../contexts/contexts"; import {Accordion, Button, Form, FormField, FormGroup, FormInput, Header, Loader, Segment, TextArea} from "./Theme"; import {AccordionContent, AccordionTitle, FormDropdown} from "semantic-ui-react"; import {Link} from "react-router-dom"; -import {TagsProvider, TagsSelector} from "../Tags"; +import {TagsSelector} from "../Tags"; const validUrl = /^(http|https):\/\/[^ "]+$/; @@ -105,9 +105,7 @@ class Downloader extends React.Component { let tagsSelector; if (withTags) { - tagsSelector = - - ; + tagsSelector = ; } const advancedAccordion = diff --git a/app/src/components/FilePreview.js b/app/src/components/FilePreview.js index 98bd9d54..eb92c22b 100644 --- a/app/src/components/FilePreview.js +++ b/app/src/components/FilePreview.js @@ -10,7 +10,7 @@ import { ModalContent, ModalHeader } from "semantic-ui-react"; -import {TagsProvider, TagsSelector} from "../Tags"; +import {TagsSelector} from "../Tags"; import {Media} from "../contexts/contexts"; import {encodeMediaPath} from "./Common"; import {addTag, fetchFile, removeTag} from "../api"; @@ -201,9 +201,8 @@ export function FilePreviewWrapper({children}) { openButton = Open; } const closeButton = Close; - const tagsDisplay = - - ; + const tagsDisplay = ; let downloadButton; if (downloadURL) { downloadButton = diff --git a/app/src/components/Files.js b/app/src/components/Files.js index f8edefe8..2f210132 100644 --- a/app/src/components/Files.js +++ b/app/src/components/Files.js @@ -42,7 +42,7 @@ import _ from 'lodash'; import {FileBrowser} from "./FileBrowser"; import {refreshDirectoryFiles, refreshFiles} from "../api"; import {useSubscribeEventName} from "../Events"; -import {TagsContext, TagsDropdown, TagsProvider} from "../Tags"; +import {TagsDropdown} from "../Tags"; function EbookCard({file}) { const {s} = useContext(ThemeContext); @@ -347,9 +347,7 @@ export function FilesView({ {selectButton} {viewButton} {limitDropdown} - - - + {filterOptions && filtersDropdown} {menuColumns} diff --git a/app/src/components/VideoPlayer.js b/app/src/components/VideoPlayer.js index 55c63280..9be355d4 100644 --- a/app/src/components/VideoPlayer.js +++ b/app/src/components/VideoPlayer.js @@ -20,7 +20,7 @@ import {useChannel} from "../hooks/customHooks"; import {ThemeContext} from "../contexts/contexts"; import {Button, darkTheme, Header, Icon, Segment, Tab, TabPane} from "./Theme"; import {VideoCard} from "./Videos"; -import {TagsProvider, TagsSelector} from "../Tags"; +import {TagsSelector} from "../Tags"; const MEDIA_PATH = '/media'; @@ -221,9 +221,7 @@ function VideoPage({videoFile, prevFile, nextFile, fetchVideo, ...props}) { - - - +