demos: remove indexeddb provider from example, use new websocket provider

This commit is contained in:
Hans Pagel
2021-12-02 15:44:52 +01:00
parent 270543995c
commit 21fed0fcce
5 changed files with 6278 additions and 19 deletions

6242
demos/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -8,14 +8,13 @@
"ts": "tsc --project tsconfig.base.json --noEmit && tsc --project tsconfig.react.json --noEmit && tsc --project tsconfig.vue-2.json --noEmit && tsc --project tsconfig.vue-3.json --noEmit"
},
"dependencies": {
"@hocuspocus/provider": "^1.0.0-alpha.26",
"d3": "^7.1.1",
"fast-glob": "^3.2.7",
"remixicon": "^2.5.0",
"shiki": "^0.9.12",
"simplify-js": "^1.2.4",
"y-indexeddb": "^9.0.6",
"y-webrtc": "^10.2.2",
"y-websocket": "^1.3.17",
"yjs": "^13.5.21"
},
"devDependencies": {

View File

@@ -2,8 +2,6 @@ import React, {
useState, useCallback, useEffect,
} from 'react'
import * as Y from 'yjs'
import { WebsocketProvider } from 'y-websocket'
import { IndexeddbPersistence } from 'y-indexeddb'
import { useEditor, EditorContent } from '@tiptap/react'
import StarterKit from '@tiptap/starter-kit'
import TaskList from '@tiptap/extension-task-list'
@@ -12,6 +10,7 @@ import Highlight from '@tiptap/extension-highlight'
import CharacterCount from '@tiptap/extension-character-count'
import Collaboration from '@tiptap/extension-collaboration'
import CollaborationCursor from '@tiptap/extension-collaboration-cursor'
import { HocuspocusProvider } from '@hocuspocus/provider'
import MenuBar from './MenuBar'
import './styles.scss'
@@ -54,7 +53,14 @@ const getRandomName = () => getRandomElement(names)
const room = getRandomRoom()
const ydoc = new Y.Doc()
const websocketProvider = new WebsocketProvider('wss://connect.tiptap.dev', room, ydoc)
const websocketProvider = new HocuspocusProvider({
url: 'wss://connect.hocuspocus.cloud',
parameters: {
key: 'write_B0sHbuV5xwYl6WzGjoqL',
},
name: room,
document: ydoc,
})
const getInitialUser = () => {
return JSON.parse(localStorage.getItem('currentUser')) || {
@@ -88,13 +94,6 @@ export default () => {
})
useEffect(() => {
// Store shared data persistently in browser to make offline editing possible
const indexeddbProvider = new IndexeddbPersistence(room, ydoc)
indexeddbProvider.on('synced', () => {
console.log('Loaded content from database …')
})
// Update status changes
websocketProvider.on('status', event => {
setStatus(event.status)

View File

@@ -30,8 +30,7 @@ import TaskItem from '@tiptap/extension-task-item'
import Highlight from '@tiptap/extension-highlight'
import CharacterCount from '@tiptap/extension-character-count'
import * as Y from 'yjs'
import { WebsocketProvider } from 'y-websocket'
import { IndexeddbPersistence } from 'y-indexeddb'
import { HocuspocusProvider } from '@hocuspocus/provider'
import MenuBar from './MenuBar.vue'
const getRandomElement = list => {
@@ -59,7 +58,6 @@ export default {
color: this.getRandomColor(),
},
provider: null,
indexdb: null,
editor: null,
status: 'connecting',
room: getRandomRoom(),
@@ -68,13 +66,19 @@ export default {
mounted() {
const ydoc = new Y.Doc()
this.provider = new WebsocketProvider('wss://connect.tiptap.dev', this.room, ydoc)
this.provider = new HocuspocusProvider({
url: 'wss://connect.hocuspocus.cloud',
parameters: {
key: 'write_B0sHbuV5xwYl6WzGjoqL',
},
name: this.room,
document: ydoc,
})
this.provider.on('status', event => {
this.status = event.status
})
this.indexdb = new IndexeddbPersistence(this.room, ydoc)
this.editor = new Editor({
extensions: [
StarterKit.configure({