Skip to content

Commit

Permalink
Project refactoring
Browse files Browse the repository at this point in the history
* Moved ui-only hooks and contexts to ui folder
  • Loading branch information
GuilhermeF03 committed May 15, 2024
1 parent 5c3119d commit 2aef089
Show file tree
Hide file tree
Showing 31 changed files with 48 additions and 45 deletions.
6 changes: 3 additions & 3 deletions code/client/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon.ico" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon.ico" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<meta name="description" content="NoteSpace App" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
Expand Down
6 changes: 3 additions & 3 deletions code/client/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';
import { CommunicationProvider } from '@/services/communication/context/CommunicationContext';
import { CommunicationProvider } from '@ui/contexts/communication/CommunicationContext.tsx';
import Document from '@ui/pages/document/Document';
import Header from '@ui/components/header/Header';
import Workspace from '@ui/pages/workspace/Workspace';
import NotFound from '@ui/pages/notfound/NotFound';
import './App.scss';
import { ErrorProvider } from '@domain/error/hooks/ErrorContext.tsx';
import { ErrorProvider } from '@/ui/contexts/error/ErrorContext';
import Sidebar from '@ui/components/sidebar/Sidebar';
import { WorkspaceProvider } from '@domain/workspaces/hooks/WorkspaceContext.tsx';
import { WorkspaceProvider } from '@/ui/contexts/workspace/WorkspaceContext';
import Home from '@ui/pages/home/Home.tsx';

function App() {
Expand Down
2 changes: 1 addition & 1 deletion code/client/src/domain/editor/slate/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { type BaseEditor, Descendant } from 'slate';
import { type ReactEditor } from 'slate-react';
import { type HistoryEditor } from 'slate-history';
import { type BlockStyle, InlineStyle } from '@notespace/shared/src/document/types/styles';
import { CursorData } from '@/domain/editor/slate/hooks/useCursors';
import { CursorData } from '@/ui/pages/document/components/editor/hooks/useCursors';

export interface CustomFormat {
bold?: boolean;
Expand Down
2 changes: 1 addition & 1 deletion code/client/src/services/resource/useResourceService.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useMemo } from 'react';
import { useCommunication } from '@/services/communication/context/useCommunication.ts';
import { useCommunication } from '@ui/contexts/communication/useCommunication.ts';
import { useParams } from 'react-router-dom';
import resourceService from '@/services/resource/resourceService.ts';

Expand Down
2 changes: 1 addition & 1 deletion code/client/src/services/workspace/useWorkspaceService.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useMemo } from 'react';
import { useCommunication } from '@/services/communication/context/useCommunication.ts';
import { useCommunication } from '@ui/contexts/communication/useCommunication.ts';
import workspaceService from '@/services/workspace/workspaceService.ts';

function useWorkspaceService() {
Expand Down
4 changes: 2 additions & 2 deletions code/client/src/ui/components/sidebar/Sidebar.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { IoMenu } from 'react-icons/io5';
import { Link, useParams } from 'react-router-dom';
import { RiMenuFold2Line, RiMenuFoldLine } from 'react-icons/ri';
import useWorkspace from '@domain/workspaces/hooks/useWorkspace.ts';
import useWorkspace from '@/ui/contexts/workspace/useWorkspace';
import useSidebarState from '@ui/components/sidebar/hooks/useSidebarState.ts';
import ResourceView from '@ui/components/sidebar/components/ResourceView.tsx';
import './Sidebar.scss';

function Sidebar() {
const { isOpen, isLocked, handleClick, handleMouseEnter, handleMouseLeave } = useSidebarState();
const { workspace, resources, operations } = useWorkspace();
const { workspace, resources } = useWorkspace();
const { wid } = useParams();

return (
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Communication } from '@/services/communication/communication.ts';
import { useContext } from 'react';
import { CommunicationContext } from '@/services/communication/context/CommunicationContext.tsx';
import { CommunicationContext } from '@ui/contexts/communication/CommunicationContext.tsx';

export function useCommunication(): Communication {
return useContext(CommunicationContext);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useContext } from 'react';
import { ErrorContext } from '@domain/error/hooks/ErrorContext.tsx';
import { ErrorContext } from '@/ui/contexts/error/ErrorContext';

const useError = () => useContext(ErrorContext);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import * as React from 'react';
import { useState, createContext, useEffect } from 'react';
import { Workspace, WorkspaceMetaData } from '@notespace/shared/src/workspace/types/workspace.ts';
import { useCommunication } from '@/services/communication/context/useCommunication.ts';
import useError from '@domain/error/hooks/useError.ts';
import { useCommunication } from '@ui/contexts/communication/useCommunication.ts';
import useError from '@/ui/contexts/error/useError';
import { useParams } from 'react-router-dom';
import useWorkspaceService from '@/services/workspace/useWorkspaceService.ts';
import useResources from '@domain/resources/hooks/useResources.ts';
import useResources from '@/ui/contexts/workspace/useResources';
import { ResourceType, WorkspaceResource } from '@notespace/shared/src/workspace/types/resource.ts';

type ResourceOperationsType = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { ResourceType, WorkspaceResource } from '@notespace/shared/src/workspace/types/resource.ts';
import useResourceService from '@/services/resource/useResourceService.ts';
import useSocketListeners from '@/services/communication/socket/useSocketListeners.ts';
import { useCommunication } from '@/services/communication/context/useCommunication.ts';
import { useCommunication } from '@ui/contexts/communication/useCommunication.ts';
import { useState } from 'react';

function useResources() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { useContext } from 'react';
import { WorkspaceContext } from '@domain/workspaces/hooks/WorkspaceContext.tsx';
import { WorkspaceContext } from '@/ui/contexts/workspace/WorkspaceContext';

const useWorkspace = () => useContext(WorkspaceContext);

Expand Down
4 changes: 2 additions & 2 deletions code/client/src/ui/pages/document/Document.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import Editor from '@ui/pages/document/components/editor/Editor';
import useFugue from '@domain/editor/crdt/useFugue';
import { useEffect, useState } from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import { useCommunication } from '@/services/communication/context/useCommunication';
import useError from '@domain/error/hooks/useError.ts';
import { useCommunication } from '@ui/contexts/communication/useCommunication.ts';
import useError from '@/ui/contexts/error/useError';
import useDocumentService from '@/services/resource/useResourceService';
import { DocumentResource } from '@notespace/shared/src/workspace/types/resource.ts';
import './Document.scss';
Expand Down
12 changes: 6 additions & 6 deletions code/client/src/ui/pages/document/components/editor/Editor.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ import { descendant } from '@domain/editor/slate/utils/slate';
import { Communication } from '@/services/communication/communication';
import { getMarkdownPlugin } from '@domain/editor/slate/plugins/markdown/withMarkdown';
import { Fugue } from '@domain/editor/crdt/fugue';
import useEvents from '@domain/editor/hooks/useEvents';
import useRenderers from '@domain/editor/slate/hooks/useRenderers';
import useEvents from '@/ui/pages/document/components/editor/hooks/useEvents';
import useRenderers from '@/ui/pages/document/components/editor/hooks/useRenderers';
import Toolbar from '@ui/pages/document/components/toolbar/Toolbar';
import Title from '@ui/pages/document/components/title/Title';
import useEditor from '@domain/editor/slate/hooks/useEditor';
import useHistory from '@domain/editor/slate/hooks/useHistory';
import useDecorate from '@domain/editor/slate/hooks/useDecorate';
import useCursors from '@domain/editor/slate/hooks/useCursors';
import useEditor from '@/ui/pages/document/components/editor/hooks/useEditor';
import useHistory from '@/ui/pages/document/components/editor/hooks/useHistory';
import useDecorate from '@/ui/pages/document/components/editor/hooks/useDecorate';
import useCursors from '@/ui/pages/document/components/editor/hooks/useCursors';
import getEventHandlers from '@domain/editor/slate/handlers/getEventHandlers';
import getFugueOperations from '@domain/editor/operations/fugue/operations';
import './Editor.scss';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { CursorData } from '@domain/editor/slate/hooks/useCursors';
import { CursorData } from '@/ui/pages/document/components/editor/hooks/useCursors';
import { BaseRange, Editor, NodeEntry, Path, Range, Text } from 'slate';

function useDecorate(editor: Editor, cursors: CursorData[]) {
Expand Down
8 changes: 4 additions & 4 deletions code/client/src/ui/pages/home/Home.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import useWorkspaces from '@domain/workspaces/hooks/useWorkspaces.ts';
import useWorkspaces from '@/ui/pages/home/hooks/useWorkspaces';
import WorkspaceView from '@ui/pages/home/components/WorkspaceView.tsx';
import WorkspaceHeader from '@ui/pages/workspace/components/WorkspaceHeader.tsx';
import WorkspaceHeader from '@ui/pages/workspace/components/header/WorkspaceHeader.tsx';
import CreateWorkspaceDialog from '@ui/pages/home/components/CreateWorkspaceDialog.tsx';
import useError from '@domain/error/hooks/useError.ts';
import useError from '@/ui/contexts/error/useError';
import './Home.scss';
import '../workspace/Workspace.scss';

Expand All @@ -22,7 +22,7 @@ function Home() {
key={workspace.id}
workspace={workspace}
onDelete={() => deleteWorkspace(workspace.id).catch(publishError)}
onRename={name => updateWorkspace(workspace.id, {...workspace, name: name + "-copy" }).catch(publishError)}
onRename={name => updateWorkspace(workspace.id, { ...workspace, name: name + '-copy' }).catch(publishError)}
onInvite={() => {}}
/>
))}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useEffect, useState } from 'react';
import { WorkspaceInputModel, WorkspaceMetaData } from '@notespace/shared/src/workspace/types/workspace.ts';
import useSocketListeners from '@/services/communication/socket/useSocketListeners.ts';
import { useCommunication } from '@/services/communication/context/useCommunication.ts';
import { useCommunication } from '@ui/contexts/communication/useCommunication.ts';
import useWorkspaceService from '@/services/workspace/useWorkspaceService.ts';

function useWorkspaces() {
Expand Down
14 changes: 8 additions & 6 deletions code/client/src/ui/pages/workspace/Workspace.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import WorkspaceHeader from '@ui/pages/workspace/components/WorkspaceHeader';
import DocumentView from '@ui/pages/workspace/components/DocumentView.tsx';
import useError from '@domain/error/hooks/useError.ts';
import WorkspaceHeader from '@ui/pages/workspace/components/header/WorkspaceHeader.tsx';
import FileView from '@ui/pages/workspace/components/FileView.tsx';
import useError from '@/ui/contexts/error/useError';
import './Workspace.scss';
import useWorkspace from '@domain/workspaces/hooks/useWorkspace.ts';
import useWorkspace from '@/ui/contexts/workspace/useWorkspace';
import { DocumentResourceMetadata, ResourceType } from '@notespace/shared/src/workspace/types/resource.ts';

function Workspace() {
Expand All @@ -19,11 +19,13 @@ function Workspace() {
{resources
?.filter(resource => resource.type === ResourceType.DOCUMENT)
.map(resource => (
<DocumentView
<FileView
key={resource.id}
document={resource as DocumentResourceMetadata}
onDelete={() => operations?.deleteResource(resource.id).catch(publishError)}
onDuplicate={() => operations?.createResource(resource.name + "-copy", ResourceType.DOCUMENT).catch(publishError)}
onDuplicate={() =>
operations?.createResource(resource.name + '-copy', ResourceType.DOCUMENT).catch(publishError)
}
onRename={name => operations?.updateResource(resource.id, { name }).catch(publishError)}
/>
))}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ type DocumentContextMenuProps = {
onDuplicate: () => void;
};

function DocumentContextMenu({ item, onRename, onDelete, onDuplicate }: DocumentContextMenuProps) {
function FileContextMenu({ item, onRename, onDelete, onDuplicate }: DocumentContextMenuProps) {
return (
<ContextMenu item={item}>
<button onClick={onRename}>
Expand All @@ -29,4 +29,4 @@ function DocumentContextMenu({ item, onRename, onDelete, onDuplicate }: Document
);
}

export default DocumentContextMenu;
export default FileContextMenu;
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { IoDocumentText } from 'react-icons/io5';
import { Link, useParams } from 'react-router-dom';
import DocumentContextMenu from '@ui/pages/workspace/components/DocumentContextMenu';
import FileContextMenu from '@ui/pages/workspace/components/FileContextMenu.tsx';
import { DocumentResourceMetadata } from '@notespace/shared/src/workspace/types/resource.ts';
import useEditing from '@ui/hooks/useEditing.tsx';

Expand All @@ -11,7 +11,7 @@ type DocumentPreviewProps = {
onRename: (title: string) => void;
};

function DocumentView({ document, onDelete, onRename, onDuplicate }: DocumentPreviewProps) {
function FileView({ document, onDelete, onRename, onDuplicate }: DocumentPreviewProps) {
const { wid } = useParams();
const { component, isEditing, setIsEditing } = useEditing(document.name || 'Untitled', onRename);
const DocumentComponent = (
Expand All @@ -23,7 +23,7 @@ function DocumentView({ document, onDelete, onRename, onDuplicate }: DocumentPre
</li>
);
return (
<DocumentContextMenu
<FileContextMenu
item={isEditing ? DocumentComponent : <Link to={`/workspaces/${wid}/${document.id}`}>{DocumentComponent}</Link>}
onRename={() => setIsEditing(true)}
onDuplicate={onDuplicate}
Expand All @@ -32,4 +32,4 @@ function DocumentView({ document, onDelete, onRename, onDuplicate }: DocumentPre
);
}

export default DocumentView;
export default FileView;
1 change: 1 addition & 0 deletions code/server/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@
"knip": "^5.12.3",
"prettier": "^3.2.5",
"socket.io-client": "^4.7.5",
"superagent": "^9.0.0",
"test-jest": "^1.0.1",
"ts-jest": "^29.1.2",
"tsconfig-paths": "^4.2.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import sql from '@databases/postgres/config';

export class PostgresResourcesDB implements ResourcesRepository {
async createResource(wid: string, name: string, type: ResourceType, parent?: string): Promise<string> {
const resource = { workspace: wid, name, type };
const resource = { workspace: wid, name, parent: parent || '', type };
const results = await sql`
INSERT INTO resources ${sql(resource)}
RETURNING id
Expand Down

0 comments on commit 2aef089

Please sign in to comment.