Merge pull request #28 from toeverything/bugfix/leftlayout220802

Bugfix/leftlayout220802
This commit is contained in:
DarkSky
2022-08-02 11:45:12 +08:00
committed by GitHub
3 changed files with 40 additions and 27 deletions

View File

@@ -9,7 +9,7 @@ import {
useUserAndSpaces, useUserAndSpaces,
useShowSpaceSidebar, useShowSpaceSidebar,
} from '@toeverything/datasource/state'; } from '@toeverything/datasource/state';
import { useCallback, useEffect, useState } from 'react'; import { useCallback, useEffect, useRef, useState } from 'react';
import { services } from '@toeverything/datasource/db-service'; import { services } from '@toeverything/datasource/db-service';
const WorkspaceContainer = styled('div')({ const WorkspaceContainer = styled('div')({
@@ -78,6 +78,7 @@ export const WorkspaceName = () => {
const { fixedDisplay, toggleSpaceSidebar } = useShowSpaceSidebar(); const { fixedDisplay, toggleSpaceSidebar } = useShowSpaceSidebar();
const [inRename, setInRename] = useState(false); const [inRename, setInRename] = useState(false);
const [workspaceName, setWorkspaceName] = useState(''); const [workspaceName, setWorkspaceName] = useState('');
const [workspaceId, setWorkspaceId] = useState('');
const fetchWorkspaceName = useCallback(async () => { const fetchWorkspaceName = useCallback(async () => {
if (!currentSpaceId) { if (!currentSpaceId) {
@@ -88,6 +89,11 @@ export const WorkspaceName = () => {
currentSpaceId currentSpaceId
); );
setWorkspaceName(name); setWorkspaceName(name);
const workspaceId = await services.api.userConfig.getWorkspaceId(
currentSpaceId
);
setWorkspaceId(workspaceId);
}, [currentSpaceId]); }, [currentSpaceId]);
useEffect(() => { useEffect(() => {
@@ -150,7 +156,7 @@ export const WorkspaceName = () => {
) : ( ) : (
<WorkspaceNameContainer> <WorkspaceNameContainer>
<span onClick={() => setInRename(true)}> <span onClick={() => setInRename(true)}>
{workspaceName} {workspaceName || workspaceId}
</span> </span>
</WorkspaceNameContainer> </WorkspaceNameContainer>
)} )}

View File

@@ -4,6 +4,7 @@ import {
Cascader, Cascader,
CascaderItemProps, CascaderItemProps,
MuiDivider as Divider, MuiDivider as Divider,
MuiClickAwayListener as ClickAwayListener,
} from '@toeverything/components/ui'; } from '@toeverything/components/ui';
import React from 'react'; import React from 'react';
import { NavLink, useNavigate } from 'react-router-dom'; import { NavLink, useNavigate } from 'react-router-dom';
@@ -233,7 +234,8 @@ function DndTreeItemMoreActions(props: ActionsProps) {
]; ];
return ( return (
<> <ClickAwayListener onClickAway={() => handleClose()}>
<div>
<span <span
className={styles['TreeItemMoreActions']} className={styles['TreeItemMoreActions']}
onClick={handleClick} onClick={handleClick}
@@ -255,7 +257,8 @@ function DndTreeItemMoreActions(props: ActionsProps) {
autoHideDuration={2000} autoHideDuration={2000}
onClose={handle_alert_close} onClose={handle_alert_close}
/> />
</> </div>
</ClickAwayListener>
); );
} }

View File

@@ -112,11 +112,15 @@ export class UserConfig extends ServiceBaseClass {
async getWorkspaceName(workspace: string): Promise<string> { async getWorkspaceName(workspace: string): Promise<string> {
const workspace_db_block = await this.getWorkspaceDbBlock(workspace); const workspace_db_block = await this.getWorkspaceDbBlock(workspace);
const workspaceName = const workspaceName =
workspace_db_block.getDecoration<string>(WORKSPACE_CONFIG) || workspace_db_block.getDecoration<string>(WORKSPACE_CONFIG) || '';
workspace_db_block.id;
return workspaceName; return workspaceName;
} }
async getWorkspaceId(workspace: string): Promise<string> {
const workspace_db_block = await this.getWorkspaceDbBlock(workspace);
return workspace_db_block.id;
}
async setWorkspaceName(workspace: string, workspaceName: string) { async setWorkspaceName(workspace: string, workspaceName: string) {
const workspace_db_block = await this.getWorkspaceDbBlock(workspace); const workspace_db_block = await this.getWorkspaceDbBlock(workspace);
workspace_db_block.setDecoration(WORKSPACE_CONFIG, workspaceName); workspace_db_block.setDecoration(WORKSPACE_CONFIG, workspaceName);