implement

This commit is contained in:
2026-02-17 00:48:28 +01:00
parent 0119c7a737
commit 5c7909034f
57 changed files with 1676 additions and 114 deletions

View File

@@ -1,5 +1,5 @@
import { SignalRService } from '@/services/signalr.ts'
import type { Rectangle, Whiteboard } from '@/types/whiteboard.ts'
import type { Arrow, Line, MoveShapeCommand, Rectangle, TextShape, Whiteboard } from '@/types/whiteboard.ts'
const client = new SignalRService(`/hubs/whiteboard`)
@@ -24,6 +24,18 @@ export const whiteboardHubService = {
await client.invoke('AddRectangle', rectangle)
},
async addArrow(arrow: Arrow) {
await client.invoke('AddArrow', arrow)
},
async addLine(line: Line) {
await client.invoke('AddLine', line)
},
async addTextShape(textShape: TextShape) {
await client.invoke('AddTextShape', textShape)
},
onInitWhiteboard(callback: (whiteboard: Whiteboard) => void) {
client.on<Whiteboard>('InitWhiteboard', callback)
},
@@ -32,6 +44,30 @@ export const whiteboardHubService = {
client.on<Rectangle>('AddedRectangle', callback)
},
onAddedArrow(callback: (arrow: Arrow) => void) {
client.on<Arrow>('AddedArrow', callback)
},
onAddedLine(callback: (line: Line) => void) {
client.on<Line>('AddedLine', callback)
},
onAddedTextShape(callback: (textShape: TextShape) => void) {
client.on<TextShape>('AddedTextShape', callback)
},
async moveShape(command: MoveShapeCommand) {
await client.invoke('MoveShape', command)
},
async placeShape(command: MoveShapeCommand) {
await client.invoke('PlaceShape', command)
},
onMovedShape(callback: (command: MoveShapeCommand) => void) {
client.on<MoveShapeCommand>('MovedShape', callback)
},
onJoined(callback: (userId: string) => void) {
client.on<string>('Joined', callback)
},
@@ -43,6 +79,10 @@ export const whiteboardHubService = {
offAll() {
client.off('InitWhiteboard')
client.off('AddedRectangle')
client.off('AddedArrow')
client.off('AddedLine')
client.off('AddedTextShape')
client.off('MovedShape')
client.off('Joined')
client.off('Leaved')
},