implement new invitation system

* fix comments on the frontend
* move jwt token service to its own module
* other fixes and updates
This commit is contained in:
Philipinho
2024-05-14 22:55:11 +01:00
parent 525990d6e5
commit eefe63d1cd
75 changed files with 10965 additions and 7846 deletions

View File

@ -0,0 +1,2 @@
export * from "./is-custom-node-selected";
export * from "./is-text-selected";

View File

@ -0,0 +1,11 @@
import { Editor } from "@tiptap/react";
import TiptapLink from "@tiptap/extension-link";
import { CodeBlock } from "@tiptap/extension-code-block";
export const isCustomNodeSelected = (editor: Editor, node: HTMLElement) => {
const customNodes = [CodeBlock.name, TiptapLink.name];
return customNodes.some((type) => editor.isActive(type));
};
export default isCustomNodeSelected;

View File

@ -0,0 +1,26 @@
import { isTextSelection } from "@tiptap/core";
import { Editor } from "@tiptap/react";
export const isTextSelected = ({ editor }: { editor: Editor }) => {
const {
state: {
doc,
selection,
selection: { empty, from, to },
},
} = editor;
// Sometime check for `empty` is not enough.
// Doubleclick an empty paragraph returns a node size of 2.
// So we check also for an empty text size.
const isEmptyTextBlock =
!doc.textBetween(from, to).length && isTextSelection(selection);
if (empty || isEmptyTextBlock || !editor.isEditable) {
return false;
}
return true;
};
export default isTextSelected;