Skip to content

Commit

Permalink
TiptapCollab: make it possible to associate a username to changes (#812)
Browse files Browse the repository at this point in the history
  • Loading branch information
janthurau authored Mar 29, 2024
1 parent e326144 commit 5d3555b
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion packages/provider/src/TiptapCollabProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ export type TiptapCollabProviderConfiguration =
Partial<HocuspocusProviderConfiguration> &
(Required<Pick<AdditionalTiptapCollabProviderConfiguration, 'websocketProvider'>> |
Required<Pick<AdditionalTiptapCollabProviderConfiguration, 'appId'>>|
Required<Pick<AdditionalTiptapCollabProviderConfiguration, 'baseUrl'>>)
Required<Pick<AdditionalTiptapCollabProviderConfiguration, 'baseUrl'>>) &
Pick<AdditionalTiptapCollabProviderConfiguration, 'user'>

export interface AdditionalTiptapCollabProviderConfiguration {
/**
Expand All @@ -30,11 +31,15 @@ export interface AdditionalTiptapCollabProviderConfiguration {
baseUrl?: string

websocketProvider?: TiptapCollabProviderWebsocket

user?: string
}

export class TiptapCollabProvider extends HocuspocusProvider {
tiptapCollabConfigurationPrefix = '__tiptapcollab__'

userData?: Y.PermanentUserData

constructor(configuration: TiptapCollabProviderConfiguration) {
if (!configuration.websocketProvider) {
configuration.websocketProvider = new TiptapCollabProviderWebsocket({ appId: (configuration as Required<Pick<AdditionalTiptapCollabProviderConfiguration, 'appId'>>).appId, baseUrl: (configuration as Required<Pick<AdditionalTiptapCollabProviderConfiguration, 'baseUrl'>>).baseUrl })
Expand All @@ -45,6 +50,11 @@ export class TiptapCollabProvider extends HocuspocusProvider {
}

super(configuration as HocuspocusProviderConfiguration)

if (configuration.user) {
this.userData = new Y.PermanentUserData(this.document, this.document.getMap('__tiptapcollab__users'))
this.userData.setUserMapping(this.document, this.document.clientID, configuration.user)
}
}

/**
Expand Down

0 comments on commit 5d3555b

Please sign in to comment.