Skip to content

Commit d092715

Browse files
Add links to code in demos (#375)
Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
1 parent 5032427 commit d092715

14 files changed

Lines changed: 106 additions & 28 deletions

File tree

examples/nextjs/src/app/(demos)/blocknote/BlockNote.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ import { useYDoc, useYjsProvider } from '@y-sweet/react'
44
import { useCreateBlockNote } from '@blocknote/react'
55
import { BlockNoteView } from '@blocknote/mantine'
66
import '@blocknote/mantine/style.css'
7-
8-
import Title from '@/components/Title'
7+
import Header from '@/components/Header'
98

109
export function BlockNote() {
1110
const provider = useYjsProvider()
@@ -21,7 +20,10 @@ export function BlockNote() {
2120

2221
return (
2322
<div className="p-4 sm:p-8 flex flex-col gap-y-3 h-full">
24-
<Title>BlockNote</Title>
23+
<Header
24+
title="BlockNote Editor"
25+
githubLink="https://github.com/jamsocket/y-sweet/tree/main/examples/nextjs/src/app/(demos)/blocknote"
26+
/>
2527
<div className="flex-1 bg-white px-2 py-4 rounded-lg">
2628
<BlockNoteView editor={editor} theme="light" />
2729
</div>

examples/nextjs/src/app/(demos)/code-editor/CodeEditor.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useAwareness, useText } from '@y-sweet/react'
44
import { useCallback, useRef } from 'react'
55
import type { CodemirrorBinding } from 'y-codemirror'
66
import type { EditorFromTextArea } from 'codemirror'
7-
import Title from '@/components/Title'
7+
import Header from '@/components/Header'
88

99
import 'codemirror/lib/codemirror.css'
1010
if (typeof navigator !== 'undefined') {
@@ -59,7 +59,10 @@ export function CodeEditor() {
5959

6060
return (
6161
<div className="p-4 lg:p-8 space-y-4">
62-
<Title>Code Editor</Title>
62+
<Header
63+
title="CodeMirror Editor"
64+
githubLink="https://github.com/jamsocket/y-sweet/blob/main/examples/nextjs/src/app/(demos)/code-editor"
65+
/>
6366
<div>
6467
<textarea ref={codeMirrorRef} />
6568
</div>

examples/nextjs/src/app/(demos)/color-grid/ColorGrid.tsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
import { useMap } from '@y-sweet/react'
44
import { useState } from 'react'
5-
import Title from '@/components/Title'
5+
import Header from '@/components/Header'
6+
import StateIndicator from '@/components/StateIndicator'
67

78
const GRID_SIZE = 10
89
const COLORS = ['#500724', '#831843', '#9d174d', '#be185d', '#db2777', '#f472b6', '#f9a8d4', null]
@@ -15,7 +16,12 @@ export function ColorGrid() {
1516

1617
return (
1718
<div className="space-y-3">
18-
<Title>Color Grid</Title>
19+
<Header
20+
title="Color Grid"
21+
githubLink="https://github.com/jamsocket/y-sweet/blob/main/examples/nextjs/src/app/(demos)/color-grid"
22+
/>
23+
<StateIndicator />
24+
1925
<div className="space-x-2 flex flex-row">
2026
{COLORS.map((c) => (
2127
<div

examples/nextjs/src/app/(demos)/color-grid/page.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
import { YDocProvider } from '@y-sweet/react'
22
import { randomId } from '@/lib/utils'
33
import { ColorGrid } from './ColorGrid'
4-
import StateIndicator from '@/components/StateIndicator'
5-
64
export default function Home({ searchParams }: { searchParams: { doc: string } }) {
75
const docId = searchParams.doc ?? randomId()
86
return (
97
<YDocProvider docId={docId} setQueryParam="doc" authEndpoint="/api/auth" offlineSupport={true}>
108
<div className="p-4 lg:p-8">
11-
<StateIndicator />
129
<ColorGrid />
1310
</div>
1411
</YDocProvider>

examples/nextjs/src/app/(demos)/monaco/CodeEditor.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { Editor } from '@monaco-editor/react'
55
import { MonacoBinding } from 'y-monaco'
66
import { useYDoc, useAwareness, useYjsProvider } from '@y-sweet/react'
77
import { editor } from 'monaco-editor'
8-
import Title from '@/components/Title'
8+
import Header from '@/components/Header'
99

1010
export function CodeEditor() {
1111
const yDoc = useYDoc()
@@ -32,7 +32,10 @@ export function CodeEditor() {
3232

3333
return (
3434
<div className="p-4 lg:p-8 space-y-4">
35-
<Title>Monaco Code Editor</Title>
35+
<Header
36+
title="Monaco Code Editor"
37+
githubLink="https://github.com/jamsocket/y-sweet/tree/main/examples/nextjs/src/app/(demos)/monaco"
38+
/>
3639
<div>
3740
<Editor
3841
defaultLanguage="javascript"

examples/nextjs/src/app/(demos)/presence/Presence.tsx

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use client'
22

3+
import Header from '@/components/Header'
34
import { usePresence, usePresenceSetter } from '@y-sweet/react'
45
import { useCallback, useRef, useState } from 'react'
56

@@ -65,13 +66,19 @@ export function Presence() {
6566
)
6667

6768
return (
68-
<svg
69-
className="relative overflow-hidden w-full h-full cursor-none"
70-
onMouseMove={updatePresence}
71-
>
72-
{Array.from(presence.entries()).map(([key, value]) => (
73-
<Cursor key={key} presence={value} />
74-
))}
75-
</svg>
69+
<div className="w-full h-full">
70+
<Header
71+
title="Live Cursors"
72+
githubLink="https://github.com/jamsocket/y-sweet/tree/main/examples/nextjs/src/app/(demos)/presence"
73+
/>
74+
<svg
75+
className="relative overflow-hidden w-full h-full cursor-none"
76+
onMouseMove={updatePresence}
77+
>
78+
{Array.from(presence.entries()).map(([key, value]) => (
79+
<Cursor key={key} presence={value} />
80+
))}
81+
</svg>
82+
</div>
7683
)
7784
}

examples/nextjs/src/app/(demos)/presence/page.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ export default function Home({ searchParams }: { searchParams: { doc: string } }
66
const docId = searchParams.doc ?? randomId()
77
return (
88
<YDocProvider docId={docId} setQueryParam="doc" authEndpoint="/api/auth" offlineSupport={true}>
9-
<Presence />
9+
<div className="p-4 lg:p-8">
10+
<Presence />
11+
</div>
1012
</YDocProvider>
1113
)
1214
}

examples/nextjs/src/app/(demos)/slate/SlateEditor.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import { useYDoc, useYjsProvider, useAwareness } from '@y-sweet/react'
44
import { useEffect, useMemo, useState } from 'react'
5+
import Header from '@/components/Header'
56
import * as Y from 'yjs'
67

78
import RichtextSlateEditor from './RichtextSlateEditor'
@@ -25,7 +26,11 @@ export function SlateEditor() {
2526
if (!connected) return 'Loading...'
2627

2728
return (
28-
<div className="p-8">
29+
<div className="p-4 lg:p-8 space-y-3">
30+
<Header
31+
title="Slate Rich Text Editor"
32+
githubLink="https://github.com/jamsocket/y-sweet/tree/main/examples/nextjs/src/app/(demos)/slate"
33+
/>
2934
<div className="bg-white rounded-lg">
3035
<RichtextSlateEditor sharedType={sharedType} awareness={awareness} />
3136
</div>

examples/nextjs/src/app/(demos)/text-editor/TextEditor.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { useText, useAwareness } from '@y-sweet/react'
44
import { useEffect, useRef } from 'react'
55
import { QuillBinding } from 'y-quill'
6-
import Title from '@/components/Title'
6+
import Header from '@/components/Header'
77

88
import 'quill/dist/quill.snow.css'
99

@@ -44,7 +44,10 @@ export function TextEditor() {
4444

4545
return (
4646
<div className="p-4 sm:p-8 space-y-3">
47-
<Title>A Collaborative Text Editor</Title>
47+
<Header
48+
title="Quill Text Editor"
49+
githubLink="https://github.com/jamsocket/y-sweet/tree/main/examples/nextjs/src/app/(demos)/text-editor"
50+
/>
4851
<div className="bg-white/90">
4952
<div ref={editorRef} />
5053
</div>

examples/nextjs/src/app/(demos)/to-do-list/ToDoList.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import { useArray } from '@y-sweet/react'
44
import { useCallback, useState } from 'react'
55
import * as Y from 'yjs'
6-
import Title from '@/components/Title'
6+
import Header from '@/components/Header'
77

88
type ToDoItem = {
99
text: string
@@ -105,7 +105,11 @@ export function ToDoList() {
105105

106106
return (
107107
<div className="space-y-4 p-4 lg:p-8">
108-
<Title>To-do List</Title>
108+
<Header
109+
title="To-Do List"
110+
githubLink="https://github.com/jamsocket/y-sweet/tree/main/examples/nextjs/src/app/(demos)/to-do-list"
111+
/>
112+
109113
<div className="space-y-1">
110114
{items && items.map((item, index) => <ToDoItem key={index} item={item} />)}
111115
</div>

0 commit comments

Comments
 (0)