diff --git a/front/components/Editor/EditorWrapper.tsx b/front/components/Editor/EditorWrapper.tsx index 21021cc0..6b5bc38e 100644 --- a/front/components/Editor/EditorWrapper.tsx +++ b/front/components/Editor/EditorWrapper.tsx @@ -3,15 +3,17 @@ import * as Y from "yjs"; import { WebrtcProvider } from "y-webrtc"; import Editor from "./Editor"; import { updateActivity } from "@services/courses/activities"; +import { toast } from "react-hot-toast"; +import Toast from "@components/UI/Toast/Toast"; interface EditorWrapperProps { content: string; activity: any; - course:any + course: any orgslug: string; } -function EditorWrapper(props: EditorWrapperProps) : JSX.Element { +function EditorWrapper(props: EditorWrapperProps): JSX.Element { // A new Y document const ydoc = new Y.Doc(); const [providerState, setProviderState] = React.useState({}); @@ -19,24 +21,37 @@ function EditorWrapper(props: EditorWrapperProps) : JSX.Element { const [isLoading, setIsLoading] = React.useState(true); function createRTCProvider() { - // const provider = new WebrtcProvider(props.activity.activity_id, ydoc); - // setYdocState(ydoc); - // setProviderState(provider); + // const provider = new WebrtcProvider(props.activity.activity_id, ydoc); + // setYdocState(ydoc); + // setProviderState(provider); setIsLoading(false); } + + async function setContent(content: any) { let activity = props.activity; activity.content = content; - const res = await updateActivity(activity, activity.activity_id); - alert(JSON.stringify(res)); + + toast.promise( + updateActivity(activity, activity.activity_id), + { + loading: 'Saving...', + success: Activity saved!, + error: Could not save., + } + ); } if (isLoading) { createRTCProvider(); return
Loading...
; } else { - return ; + return <> + + ; + + } } diff --git a/front/components/UI/Toast/Toast.tsx b/front/components/UI/Toast/Toast.tsx new file mode 100644 index 00000000..b297ec45 --- /dev/null +++ b/front/components/UI/Toast/Toast.tsx @@ -0,0 +1,11 @@ +import React from 'react' +import { Toaster } from 'react-hot-toast'; + + +function Toast() { + return ( + <> + ) +} + +export default Toast \ No newline at end of file diff --git a/front/package-lock.json b/front/package-lock.json index f3c41c75..f13162c8 100644 --- a/front/package-lock.json +++ b/front/package-lock.json @@ -31,6 +31,7 @@ "react": "^18.2.0", "react-beautiful-dnd": "^13.1.1", "react-dom": "^18.2.0", + "react-hot-toast": "^2.4.1", "react-katex": "^3.0.1", "react-spinners": "^0.13.8", "styled-components": "^6.0.0-beta.9", @@ -6952,6 +6953,21 @@ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" }, + "node_modules/react-hot-toast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", + "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "dependencies": { + "goober": "^2.1.10" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">=16", + "react-dom": ">=16" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -13070,6 +13086,14 @@ "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" }, + "react-hot-toast": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/react-hot-toast/-/react-hot-toast-2.4.1.tgz", + "integrity": "sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==", + "requires": { + "goober": "^2.1.10" + } + }, "react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", diff --git a/front/package.json b/front/package.json index 1182935c..92e40679 100644 --- a/front/package.json +++ b/front/package.json @@ -32,6 +32,7 @@ "react": "^18.2.0", "react-beautiful-dnd": "^13.1.1", "react-dom": "^18.2.0", + "react-hot-toast": "^2.4.1", "react-katex": "^3.0.1", "react-spinners": "^0.13.8", "styled-components": "^6.0.0-beta.9",