Skip to content

Commit

Permalink
feat: 修复协同部分bug (#134)
Browse files Browse the repository at this point in the history
* feat: 修复url错误

* fix: 禁用协同组件ssr

* feat: 修改节流时间
  • Loading branch information
coderz-w authored Oct 29, 2024
1 parent adfed2b commit b143759
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 8 deletions.
20 changes: 14 additions & 6 deletions src/app/cooperation/(router)/[room]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,28 @@
'use client';

import React, { useEffect, useState } from 'react';
import { useRouter } from 'next/navigation';
import dynamic from 'next/dynamic';

import { TASKS } from '@/utils';
import { CooperationHeader } from '@/components/cooperation/header';
import { TaskList } from '@/components/cooperation/taskList';
import { TaskDescription } from '@/components/cooperation/taskDescription';
import { CooperationEditor } from '@/components/cooperation/cooperationEditor';

const CooperationEditor = dynamic(() => import('@/components/cooperation/cooperationEditor'), {
ssr: false,
});

interface CooperationPageProps {
params: any;
}

async function searchUserByEmail() {
const token = JSON.parse(localStorage.getItem('ONLINE_EDIT_AUTH') ?? '')?.access_token;
async function searchUserByEmail(errCb: () => void) {
const storedToken = localStorage.getItem('ONLINE_EDIT_AUTH');
const token = storedToken ? JSON.parse(storedToken).access_token : null;

try {
const response = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}`, {
const response = await fetch(`${process.env.NEXT_PUBLIC_SERVER_URL}/api/v1/user`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
Expand All @@ -25,7 +31,8 @@ async function searchUserByEmail() {
});

if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
localStorage.removeItem('ONLINE_EDIT_AUTH');
errCb();
}

const res = await response.json();
Expand All @@ -41,10 +48,11 @@ async function searchUserByEmail() {

export default function CooperationPage({ params }: CooperationPageProps) {
const [userInfo, setUserInfo] = useState(null);
const router = useRouter();

useEffect(() => {
async function fetchUserInfo() {
const user = await searchUserByEmail();
const user = await searchUserByEmail(() => router.push('/login?redirect=/dashboard'));
setUserInfo(user);
}

Expand Down
6 changes: 4 additions & 2 deletions src/components/cooperation/cooperationEditor/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ type CooperationEditorProps = {
userInfo: Record<string, any>;
};

export const CooperationEditor: React.FC<CooperationEditorProps> = ({ roomId, userInfo }) => {
const CooperationEditor: React.FC<CooperationEditorProps> = ({ roomId, userInfo }) => {
const ydoc = useMemo(() => new Y.Doc({}), []);
const [editor, setEditor] = useState<monaco.editor.IStandaloneCodeEditor | null>(null);
const [provider, setProvider] = useState<WebsocketProvider | null>(null);
Expand Down Expand Up @@ -77,7 +77,7 @@ export const CooperationEditor: React.FC<CooperationEditorProps> = ({ roomId, us
x: e.clientX,
y: e.clientY,
});
}, 15);
}, 5);

const handleMouseout = () => {
provider.awareness.setLocalStateField('cursorLocation', {
Expand Down Expand Up @@ -230,3 +230,5 @@ export const CooperationEditor: React.FC<CooperationEditorProps> = ({ roomId, us
</div>
);
};

export default CooperationEditor;

0 comments on commit b143759

Please sign in to comment.