Compare commits

..

1 Commits

Author SHA1 Message Date
674769df02 use non-esm nanoid version 2025-04-19 15:54:11 +01:00
5 changed files with 512 additions and 459 deletions

View File

@ -4,15 +4,14 @@
Open-source collaborative wiki and documentation software. Open-source collaborative wiki and documentation software.
<br /> <br />
<a href="https://docmost.com"><strong>Website</strong></a> | <a href="https://docmost.com"><strong>Website</strong></a> |
<a href="https://docmost.com/docs"><strong>Documentation</strong></a> | <a href="https://docmost.com/docs"><strong>Documentation</strong></a>
<a href="https://twitter.com/DocmostHQ"><strong>Twitter / X</strong></a>
</p> </p>
</div> </div>
<br /> <br />
## Getting started ## Getting started
To get started with Docmost, please refer to our [documentation](https://docmost.com/docs) or try our [cloud version](https://docmost.com/pricing) . To get started with Docmost, please refer to our [documentation](https://docmost.com/docs).
## Features ## Features
@ -47,16 +46,3 @@ All files in the following directories are licensed under the Docmost Enterprise
### Contributing ### Contributing
See the [development documentation](https://docmost.com/docs/self-hosting/development) See the [development documentation](https://docmost.com/docs/self-hosting/development)
## Thanks
Special thanks to;
<img width="100" alt="Crowdin" src="https://github.com/user-attachments/assets/a6c3d352-e41b-448d-b6cd-3fbca3109f07" />
[Crowdin](https://crowdin.com/) for providing access to their localization platform.
<img width="48" alt="Algolia-mark-square-white" src="https://github.com/user-attachments/assets/6ccad04a-9589-4965-b6a1-d5cb1f4f9e94" />
[Algolia](https://www.algolia.com/) for providing full-text search to the docs.

View File

@ -25,7 +25,7 @@
"@tabler/icons-react": "^3.22.0", "@tabler/icons-react": "^3.22.0",
"@tanstack/react-query": "^5.61.4", "@tanstack/react-query": "^5.61.4",
"@tiptap/extension-character-count": "^2.11.5", "@tiptap/extension-character-count": "^2.11.5",
"axios": "^1.8.4", "axios": "^1.7.9",
"clsx": "^2.1.1", "clsx": "^2.1.1",
"emoji-mart": "^5.6.0", "emoji-mart": "^5.6.0",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
@ -63,7 +63,7 @@
"@types/node": "22.10.0", "@types/node": "22.10.0",
"@types/react": "^18.3.12", "@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1", "@types/react-dom": "^18.3.1",
"@vitejs/plugin-react": "^4.4.1", "@vitejs/plugin-react": "^4.3.4",
"eslint": "^9.15.0", "eslint": "^9.15.0",
"eslint-plugin-react": "^7.37.2", "eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-hooks": "^5.1.0",
@ -76,6 +76,6 @@
"prettier": "^3.4.1", "prettier": "^3.4.1",
"typescript": "^5.7.2", "typescript": "^5.7.2",
"typescript-eslint": "^8.17.0", "typescript-eslint": "^8.17.0",
"vite": "npm:rolldown-vite@latest" "vite": "^6.1.0"
} }
} }

View File

@ -7,7 +7,7 @@ import {
usePageQuery, usePageQuery,
useUpdatePageMutation, useUpdatePageMutation,
} from "@/features/page/queries/page-query.ts"; } from "@/features/page/queries/page-query.ts";
import { useEffect, useRef, useState } from "react"; import { useEffect, useRef } from "react";
import { useNavigate, useParams } from "react-router-dom"; import { useNavigate, useParams } from "react-router-dom";
import classes from "@/features/page/tree/styles/tree.module.css"; import classes from "@/features/page/tree/styles/tree.module.css";
import { ActionIcon, Menu, rem } from "@mantine/core"; import { ActionIcon, Menu, rem } from "@mantine/core";
@ -84,7 +84,7 @@ export default function SpaceTree({ spaceId, readOnly }: SpaceTreeProps) {
const rootElement = useRef<HTMLDivElement>(); const rootElement = useRef<HTMLDivElement>();
const { ref: sizeRef, width, height } = useElementSize(); const { ref: sizeRef, width, height } = useElementSize();
const mergedRef = useMergedRef(rootElement, sizeRef); const mergedRef = useMergedRef(rootElement, sizeRef);
const [isDataLoaded, setIsDataLoaded] = useState(false); const isDataLoaded = useRef(false);
const { data: currentPage } = usePageQuery({ const { data: currentPage } = usePageQuery({
pageId: extractPageSlugId(pageSlug), pageId: extractPageSlugId(pageSlug),
}); });
@ -108,7 +108,7 @@ export default function SpaceTree({ spaceId, readOnly }: SpaceTreeProps) {
// and append root pages instead of resetting the entire tree // and append root pages instead of resetting the entire tree
// which looses async loaded children too // which looses async loaded children too
setData(treeData); setData(treeData);
setIsDataLoaded(true); isDataLoaded.current = true;
setOpenTreeNodes({}); setOpenTreeNodes({});
} }
} }
@ -116,7 +116,7 @@ export default function SpaceTree({ spaceId, readOnly }: SpaceTreeProps) {
useEffect(() => { useEffect(() => {
const fetchData = async () => { const fetchData = async () => {
if (isDataLoaded && currentPage) { if (isDataLoaded.current && currentPage) {
// check if pageId node is present in the tree // check if pageId node is present in the tree
const node = dfs(treeApiRef.current?.root, currentPage.id); const node = dfs(treeApiRef.current?.root, currentPage.id);
if (node) { if (node) {
@ -178,7 +178,7 @@ export default function SpaceTree({ spaceId, readOnly }: SpaceTreeProps) {
}; };
fetchData(); fetchData();
}, [isDataLoaded, currentPage?.id]); }, [isDataLoaded.current, currentPage?.id]);
useEffect(() => { useEffect(() => {
if (currentPage?.id) { if (currentPage?.id) {

View File

@ -119,9 +119,11 @@ export class SpaceMemberRepo {
if (pagination.query) { if (pagination.query) {
query = query.where((eb) => query = query.where((eb) =>
eb('users.name', 'ilike', `%${pagination.query}%`) eb('users.name', 'ilike', `%${pagination.query}%`).or(
.or('users.email', 'ilike', `%${pagination.query}%`) 'groups.name',
.or('groups.name', 'ilike', `%${pagination.query}%`), 'ilike',
`%${pagination.query}%`,
),
); );
} }

929
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff