Skip to content

Commit

Permalink
Fix: updating y-doc
Browse files Browse the repository at this point in the history
  • Loading branch information
harshithmullapudi committed Feb 20, 2025
1 parent 4d54dfc commit 0faec2c
Show file tree
Hide file tree
Showing 7 changed files with 49 additions and 107 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
Warnings:
- The values [Activity] on the enum `ModelName` will be removed. If these variants are still used in the database, this will fail.
*/
-- AlterEnum
BEGIN;
CREATE TYPE "ModelName_new" AS ENUM ('Attachment', 'IntegrationAccount', 'IntegrationDefinitionV2', 'Task', 'SyncAction', 'User', 'Workspace', 'Page', 'Status', 'Conversation', 'ConversationHistory', 'List');
ALTER TABLE "SyncAction" ALTER COLUMN "modelName" TYPE "ModelName_new" USING ("modelName"::text::"ModelName_new");
ALTER TYPE "ModelName" RENAME TO "ModelName_old";
ALTER TYPE "ModelName_new" RENAME TO "ModelName";
DROP TYPE "ModelName_old";
COMMIT;
48 changes: 8 additions & 40 deletions apps/server/src/modules/content/content.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ import { Database } from '@hocuspocus/extension-database';
import { Hocuspocus, Server } from '@hocuspocus/server';
import { TiptapTransformer } from '@hocuspocus/transformer';
import { Injectable, OnModuleInit } from '@nestjs/common';
import { getSchema } from '@sigma/editor-extensions';
import { PrismaService } from 'nestjs-prisma';
import { prosemirrorJSONToYXmlFragment } from 'y-prosemirror';

import { LoggerService } from 'modules/logger/logger.service';
import { isValidAuthentication } from 'modules/sync/sync.utils';
import { TasksService } from 'modules/tasks/tasks.service';
import { prosemirrorJSONToYXmlFragment } from 'y-prosemirror';
import { getSchema } from '@sigma/editor-extensions';
@Injectable()
export class ContentService implements OnModuleInit {
private readonly logger: LoggerService = new LoggerService('ContentGateway');
Expand Down Expand Up @@ -71,51 +71,19 @@ export class ContentService implements OnModuleInit {
});

this.server.listen();
}

// Update any page from the server
// eslint-disable-next-line @typescript-eslint/no-explicit-any
async updateContentForDocument(documentName: string, json: any) {
const docConnection = await this.server.openDirectConnection(
'fdd4a2ee-8f5d-4452-91de-505b55a17ff5',
documentName,
{},
);

await docConnection.transact((doc) => {
const editorState = doc.getXmlFragment('default');
// const tiptapJSON = yXmlFragmentToProsemirrorJSON(editorState);

const newJSON = {
type: 'doc',
content: [
{
type: 'paragraph',
content: [
{
type: 'text',
text: 'asd',
},
],
},
{
type: 'paragraph',
},
{
type: 'heading',
attrs: {
level: 1,
},
content: [
{
type: 'text',
text: 'working',
},
],
},
{
type: 'paragraph',
content: [],
},
],
};

prosemirrorJSONToYXmlFragment(getSchema(), newJSON, editorState);
prosemirrorJSONToYXmlFragment(getSchema(), json, editorState);
});
}
}
15 changes: 7 additions & 8 deletions apps/server/src/modules/pages/pages.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { Injectable } from '@nestjs/common';
import {
convertHtmlToTiptapJson,
convertTiptapJsonToHtml,
tiptapExtensions,
} from '@sigma/editor-extensions';
import {
CreatePageDto,
Expand Down Expand Up @@ -148,13 +147,13 @@ export class PagesService {
? JSON.parse(finalDescription)
: finalDescription;

// Convert Tiptap JSON to YDoc
const newYDoc = TiptapTransformer.toYdoc(
descriptionJson,
'default',
tiptapExtensions,
);
Y.applyUpdate(ydoc, Y.encodeStateAsUpdate(newYDoc));
// // Convert Tiptap JSON to YDoc
// const newYDoc = TiptapTransformer.toYdoc(
// descriptionJson,
// 'default',
// tiptapExtensions,
// );
// Y.applyUpdate(ydoc, Y.encodeStateAsUpdate(newYDoc));
}

// Get the binary state
Expand Down
35 changes: 15 additions & 20 deletions apps/server/src/modules/tasks/tasks.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,10 +187,6 @@ export class TasksService {
page: {
title,
},
source: {
path: ['id'],
equals: source.id,
},
},
}));

Expand All @@ -201,6 +197,7 @@ export class TasksService {
},
data: {
deleted: null,
source: source ? { ...source } : undefined,
},
});

Expand Down Expand Up @@ -273,20 +270,20 @@ export class TasksService {
}

// Only trigger when task is created from the API not from third-party source
if (!tx) {
const pat = await this.usersService.getOrCreatePat(userId, workspaceId);
await tasks.trigger<typeof beautifyTask>('beautify-task', {
taskId: task.id,
pat,
});

await tasks.trigger<typeof generateSummaryTask>('generate-summary', {
taskId: task.id,
summaryData: getSummaryData(task, true),
pat,
userId,
});
}
// if (!tx) {
// const pat = await this.usersService.getOrCreatePat(userId, workspaceId);
// await tasks.trigger<typeof beautifyTask>('beautify-task', {
// taskId: task.id,
// pat,
// });

// await tasks.trigger<typeof generateSummaryTask>('generate-summary', {
// taskId: task.id,
// summaryData: getSummaryData(task, true),
// pat,
// userId,
// });
// }

return task;
}
Expand Down Expand Up @@ -326,8 +323,6 @@ export class TasksService {
}),
};

console.log(updateData);

// Get existing task and update in a single transaction
const [existingTask, updatedTask] = [
await prismaClient.task.findUnique({
Expand Down
3 changes: 1 addition & 2 deletions apps/server/src/modules/triggerdev/triggerdev.service.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { Injectable } from '@nestjs/common';
import Knex, { Knex as KnexT } from 'knex';
import { v4 as uuidv4 } from 'uuid'; // Import uuid for generating unique identifiers

import { LoggerService } from 'modules/logger/logger.service';

Expand Down Expand Up @@ -54,7 +53,7 @@ export class TriggerdevService {
await createProject(
'Sigma Common',
'sigma_common',
uuidv4().replace(/-/g, ''),
process.env.TRIGGER_TOKEN,
this.knex,
this.logger,
); // Create the common project
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ export const TaskComponent = observer((props: any) => {
},
});

console.log(props.node.attrs);
const submitTask = () => {
if (!value) {
props.deleteNode();
Expand Down
40 changes: 3 additions & 37 deletions packages/editor-extensions/src/tiptap.utils.ts
Original file line number Diff line number Diff line change
@@ -1,46 +1,12 @@
import { Blockquote } from '@tiptap/extension-blockquote';
import { BulletList } from '@tiptap/extension-bullet-list';
import { CodeBlock } from '@tiptap/extension-code-block';
import { Document } from '@tiptap/extension-document';
import { HardBreak } from '@tiptap/extension-hard-break';
import { Heading } from '@tiptap/extension-heading';
import { HorizontalRule } from '@tiptap/extension-horizontal-rule';
import { Image } from '@tiptap/extension-image';
import { Link } from '@tiptap/extension-link';
import { ListItem } from '@tiptap/extension-list-item';
import { OrderedList } from '@tiptap/extension-ordered-list';
import { Paragraph } from '@tiptap/extension-paragraph';
import { TaskItem } from '@tiptap/extension-task-item';
import { TaskList } from '@tiptap/extension-task-list';
import { Text } from '@tiptap/extension-text';
import { Underline } from '@tiptap/extension-underline';
import { generateHTML, generateJSON } from '@tiptap/html';

export const tiptapExtensions = [
Document,
Text,
Paragraph,
Heading,
Blockquote,
ListItem,
OrderedList,
BulletList,
TaskList,
TaskItem,
Image,
CodeBlock,
HardBreak,
HorizontalRule,
Link,
Underline,
];
import { defaultExtensions } from './editor-extensions';

export function convertHtmlToTiptapJson(html: string) {
const tiptapJson = generateJSON(html, tiptapExtensions);
const tiptapJson = generateJSON(html, defaultExtensions);
return tiptapJson;
}

// eslint-disable-next-line @typescript-eslint/no-explicit-any
export function convertTiptapJsonToHtml(tiptapJson: Record<string, any>) {
return generateHTML(tiptapJson, tiptapExtensions);
return generateHTML(tiptapJson, defaultExtensions);
}

0 comments on commit 0faec2c

Please sign in to comment.