Skip to content

Commit

Permalink
Refresh on active
Browse files Browse the repository at this point in the history
  • Loading branch information
ellatrix committed Jun 23, 2024
1 parent 083f1f0 commit 9d1261e
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 17 deletions.
5 changes: 5 additions & 0 deletions src/app.css
Original file line number Diff line number Diff line change
Expand Up @@ -243,4 +243,9 @@ iframe[name="editor-canvas"] {

.revision-content {
max-width: 600px;
}

.is-loading {
pointer-events: none;
opacity: 0.5;
}
41 changes: 37 additions & 4 deletions src/list.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,13 @@ import { __ } from '@wordpress/i18n';
import { v4 as uuidv4 } from 'uuid';
import { motion } from 'framer-motion';

import { Read, Write, saveFile, getTagsFromText } from './read-write';
import {
Read,
Write,
saveFile,
getTagsFromText,
createRevisionName,
} from './read-write';
import Editor from './editor';
import Sidebar, { filterItems, INITIAL_VIEW } from './sidebar.jsx';
import { Revisions } from './revisions';
Expand All @@ -47,8 +53,8 @@ function getInitialSelection({ path, blocks }) {
return { selectionStart: sel, selectionEnd: sel };
}

function refresh({ selectedFolderURL, items, setItems, setItem }) {
getPaths('', selectedFolderURL)
async function refresh({ selectedFolderURL, items, setItems, setItem }) {
await getPaths('', selectedFolderURL)
.then((_paths) => {
const pathObjects = _paths.map((_file) => ({
..._file,
Expand Down Expand Up @@ -135,6 +141,33 @@ export default function Frame({ selectedFolderURL, setSelectedFolderURL }) {

const [observer, { width }] = useResizeObserver();

const itemsRef = useRef(items);

useEffect(() => {
itemsRef.current = items;
}, [items]);

useEffect(() => {
function change() {
if (document.visibilityState === 'visible') {
currentRevisionRef.current = createRevisionName();
document.body.classList.add('is-loading');
refresh({
selectedFolderURL,
items: itemsRef.current,
setItems,
setItem,
}).then(() => {
document.body.classList.remove('is-loading');
});
}
}
document.addEventListener('visibilitychange', change);
return () => {
document.removeEventListener('visibilitychange', change);
};
}, [currentRevisionRef, selectedFolderURL, setItem]);

if (!currentId) {
return null;
}
Expand Down Expand Up @@ -276,7 +309,7 @@ export default function Frame({ selectedFolderURL, setSelectedFolderURL }) {
onClick={() => {
refresh({
selectedFolderURL,
items,
items: itemsRef.current,
setItems,
setItem,
});
Expand Down
14 changes: 1 addition & 13 deletions src/read-write.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
} from '@wordpress/blocks';
import { decodeEntities } from '@wordpress/html-entities';

function createRevisionName() {
export function createRevisionName() {
return new Date().toISOString().replaceAll(':', '_');
}

Expand Down Expand Up @@ -255,18 +255,6 @@ export function Write({
setItem,
]);

useEffect(() => {
function change() {
if (document.visibilityState === 'visible') {
currentRevisionRef.current = createRevisionName();
}
}
document.addEventListener('visibilitychange', change);
return () => {
document.removeEventListener('visibilitychange', change);
};
}, [currentRevisionRef]);

return null;
}

Expand Down

0 comments on commit 9d1261e

Please sign in to comment.