Skip to content

Commit

Permalink
minor update
Browse files Browse the repository at this point in the history
  • Loading branch information
hoavmavada committed Oct 2, 2024
1 parent 91dbff7 commit fd5f44b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 35 deletions.
2 changes: 1 addition & 1 deletion packages/quill/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hoavm-quill",
"version": "2.0.2-alpha1.15",
"version": "2.0.2-alpha1.16",
"description": "Your powerful, rich text editor",
"author": "Jason Chen <jhchen7@gmail.com>",
"homepage": "https://quilljs.com",
Expand Down
52 changes: 18 additions & 34 deletions packages/quill/src/formats/list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import Quill from '../core/quill.js';

class ListContainer extends Container {}
ListContainer.blotName = 'list-container';
ListContainer.tagName = ['OL', 'UL']; // Support both ordered and unordered lists
ListContainer.tagName = 'OL';

class ListItem extends Block {
static create(value: string) {
Expand All @@ -15,11 +15,7 @@ class ListItem extends Block {
}

static formats(domNode: HTMLElement) {
// Handle more formats for list types: ordered, unordered, checked, unchecked
const format = domNode.getAttribute('data-list') || '';
return ['ordered', 'bullet', 'checked', 'unchecked'].includes(format)
? format
: undefined;
return domNode.getAttribute('data-list') || undefined;
}

static register() {
Expand All @@ -28,37 +24,26 @@ class ListItem extends Block {

constructor(scroll: Scroll, domNode: HTMLElement) {
super(scroll, domNode);
const format = this.statics.formats(domNode);

// Create UI for checkbox if the list format is checked or unchecked
if (['checked', 'unchecked'].includes(format)) {
const ui = domNode.ownerDocument.createElement('span');
ui.classList.add('list-ui'); // Add a CSS class for styling

const listEventHandler = (e: Event) => {
if (!scroll.isEnabled()) return;

if (format === 'checked') {
this.format('list', 'unchecked');
e.preventDefault();
} else if (format === 'unchecked') {
this.format('list', 'checked');
e.preventDefault();
}
};

ui.addEventListener('mousedown', listEventHandler);
ui.addEventListener('touchstart', listEventHandler);
this.attachUI(ui);
}
const ui = domNode.ownerDocument.createElement('span');
const listEventHandler = (e: Event) => {
if (!scroll.isEnabled()) return;
const format = this.statics.formats(domNode, scroll);
if (format === 'checked') {
this.format('list', 'unchecked');
e.preventDefault();
} else if (format === 'unchecked') {
this.format('list', 'checked');
e.preventDefault();
}
};
ui.addEventListener('mousedown', listEventHandler);
ui.addEventListener('touchstart', listEventHandler);
this.attachUI(ui);
}

format(name: string, value: string) {
// Extend format handling to include more list types
if (name === this.statics.blotName && value) {
if (['ordered', 'bullet', 'checked', 'unchecked'].includes(value)) {
this.domNode.setAttribute('data-list', value);
}
this.domNode.setAttribute('data-list', value);
} else {
super.format(name, value);
}
Expand All @@ -67,7 +52,6 @@ class ListItem extends Block {
ListItem.blotName = 'list';
ListItem.tagName = 'LI';

// Allow both ordered (OL) and unordered (UL) containers
ListContainer.allowedChildren = [ListItem];
ListItem.requiredContainer = ListContainer;

Expand Down

0 comments on commit fd5f44b

Please sign in to comment.