@pie-lib/editable-html-tip-tap 1.2.0-next.27 → 1.2.0-next.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.2.0-next.28](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html-tip-tap@1.2.0-next.27...@pie-lib/editable-html-tip-tap@1.2.0-next.28) (2026-04-13)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **image:** remove unwanted change ([04a484f](https://github.com/pie-framework/pie-lib/commit/04a484f395c8a87407a8ad3f0ff99a7c0af0488a))
|
|
11
|
+
- **image:** revert - simplify setImageUploadNode command to directly insert content ([0d4467d](https://github.com/pie-framework/pie-lib/commit/0d4467dd9c29e9c90db6cfbf49f6e68704c1d0a9))
|
|
12
|
+
|
|
6
13
|
# [1.2.0-next.27](https://github.com/pie-framework/pie-lib/compare/@pie-lib/editable-html-tip-tap@1.2.0-next.26...@pie-lib/editable-html-tip-tap@1.2.0-next.27) (2026-04-09)
|
|
7
14
|
|
|
8
15
|
### Bug Fixes
|
package/lib/extensions/image.js
CHANGED
|
@@ -73,34 +73,10 @@ var ImageUploadNode = exports.ImageUploadNode = _core.Node.create({
|
|
|
73
73
|
return {
|
|
74
74
|
setImageUploadNode: function setImageUploadNode() {
|
|
75
75
|
return function (_ref2) {
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
insertImageRequested = _ref3.insertImageRequested;
|
|
80
|
-
if (!insertImageRequested) return false;
|
|
81
|
-
insertImageRequested(null, function (onFinish) {
|
|
82
|
-
return {
|
|
83
|
-
fileChosen: function fileChosen(file) {
|
|
84
|
-
if (!file) {
|
|
85
|
-
onFinish(false);
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// only insert after file is chosen
|
|
90
|
-
editor.chain().focus().insertContent({
|
|
91
|
-
type: _this2.name,
|
|
92
|
-
attrs: {
|
|
93
|
-
src: URL.createObjectURL(file) // or leave null if upload handles it
|
|
94
|
-
}
|
|
95
|
-
}).run();
|
|
96
|
-
onFinish(true);
|
|
97
|
-
},
|
|
98
|
-
cancel: function cancel() {
|
|
99
|
-
onFinish(false);
|
|
100
|
-
}
|
|
101
|
-
};
|
|
76
|
+
var commands = _ref2.commands;
|
|
77
|
+
return commands.insertContent({
|
|
78
|
+
type: _this2.name
|
|
102
79
|
});
|
|
103
|
-
return true;
|
|
104
80
|
};
|
|
105
81
|
}
|
|
106
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","names":["_core","require","_react","_react2","_interopRequireDefault","_imageComponent","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ImageUploadNode","exports","Node","create","name","group","atom","selectable","draggable","addAttributes","loaded","deleteStatus","alignment","percent","width","height","src","alt","parseHTML","tag","renderHTML","_ref","HTMLAttributes","mergeAttributes","addNodeView","_this","ReactNodeViewRenderer","props","createElement","options","addCommands","_this2","setImageUploadNode","_ref2","
|
|
1
|
+
{"version":3,"file":"image.js","names":["_core","require","_react","_react2","_interopRequireDefault","_imageComponent","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","ImageUploadNode","exports","Node","create","name","group","atom","selectable","draggable","addAttributes","loaded","deleteStatus","alignment","percent","width","height","src","alt","parseHTML","tag","renderHTML","_ref","HTMLAttributes","mergeAttributes","addNodeView","_this","ReactNodeViewRenderer","props","createElement","options","addCommands","_this2","setImageUploadNode","_ref2","commands","insertContent","type"],"sources":["../../src/extensions/image.js"],"sourcesContent":["import { mergeAttributes, Node } from '@tiptap/core';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\nimport React from 'react';\nimport ImageComponent from './image-component';\n\nexport const ImageUploadNode = Node.create({\n name: 'imageUploadNode',\n\n group: 'block',\n atom: true, // ✅ prevents content holes\n selectable: true, // optional\n draggable: true, // optional\n\n addAttributes() {\n return {\n loaded: { default: false },\n deleteStatus: { default: null },\n alignment: { default: null },\n percent: { default: null },\n width: { default: null },\n height: { default: null },\n src: { default: null },\n alt: { default: null },\n };\n },\n\n parseHTML() {\n return [\n {\n tag: 'div[data-type=\"image-upload-node\"]',\n },\n ];\n },\n\n renderHTML({ HTMLAttributes }) {\n return ['img', mergeAttributes(HTMLAttributes, { 'data-type': 'image-upload-node' })];\n },\n\n addNodeView() {\n return ReactNodeViewRenderer((props) => <ImageComponent {...{ ...props, options: this.options }} />);\n },\n\n addCommands() {\n return {\n setImageUploadNode:\n () =>\n ({ commands }) => {\n return commands.insertContent({\n type: this.name,\n });\n },\n };\n },\n});"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.2.0-next.
|
|
6
|
+
"version": "1.2.0-next.28",
|
|
7
7
|
"description": "",
|
|
8
8
|
"license": "ISC",
|
|
9
9
|
"main": "lib/index.js",
|
|
@@ -59,6 +59,6 @@
|
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"react": "^18.2.0"
|
|
61
61
|
},
|
|
62
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "906c083b9cf45f4b2b30b5d57a564e94c0b6b3d1",
|
|
63
63
|
"scripts": {}
|
|
64
64
|
}
|
|
@@ -119,28 +119,16 @@ describe('ImageUploadNode', () => {
|
|
|
119
119
|
expect(typeof commands.setImageUploadNode).toBe('function');
|
|
120
120
|
});
|
|
121
121
|
|
|
122
|
-
it('setImageUploadNode
|
|
122
|
+
it('setImageUploadNode inserts content', () => {
|
|
123
123
|
const context = { name: 'imageUploadNode' };
|
|
124
124
|
const commands = ImageUploadNode.addCommands.call(context);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
expect(result).toBe(false);
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
it('setImageUploadNode calls insertImageRequested and returns true', () => {
|
|
132
|
-
const mockInsertImageRequested = jest.fn();
|
|
133
|
-
const context = { name: 'imageUploadNode', options: { imageHandling: { insertImageRequested: mockInsertImageRequested } } };
|
|
134
|
-
const commands = ImageUploadNode.addCommands.call(context);
|
|
135
|
-
|
|
136
|
-
const mockRun = jest.fn();
|
|
137
|
-
const mockEditor = {
|
|
138
|
-
chain: () => ({ focus: () => ({ insertContent: () => ({ run: mockRun }) }) }),
|
|
125
|
+
const mockCommands = {
|
|
126
|
+
insertContent: jest.fn(() => true),
|
|
139
127
|
};
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
128
|
+
const result = commands.setImageUploadNode()({ commands: mockCommands });
|
|
129
|
+
expect(mockCommands.insertContent).toHaveBeenCalledWith({
|
|
130
|
+
type: 'imageUploadNode',
|
|
131
|
+
});
|
|
144
132
|
expect(result).toBe(true);
|
|
145
133
|
});
|
|
146
134
|
});
|
package/src/extensions/image.js
CHANGED
|
@@ -44,41 +44,11 @@ export const ImageUploadNode = Node.create({
|
|
|
44
44
|
return {
|
|
45
45
|
setImageUploadNode:
|
|
46
46
|
() =>
|
|
47
|
-
({
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
insertImageRequested(null, (onFinish) => {
|
|
52
|
-
return {
|
|
53
|
-
fileChosen: (file) => {
|
|
54
|
-
if (!file) {
|
|
55
|
-
onFinish(false);
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// only insert after file is chosen
|
|
60
|
-
editor
|
|
61
|
-
.chain()
|
|
62
|
-
.focus()
|
|
63
|
-
.insertContent({
|
|
64
|
-
type: this.name,
|
|
65
|
-
attrs: {
|
|
66
|
-
src: URL.createObjectURL(file), // or leave null if upload handles it
|
|
67
|
-
},
|
|
68
|
-
})
|
|
69
|
-
.run();
|
|
70
|
-
|
|
71
|
-
onFinish(true);
|
|
72
|
-
},
|
|
73
|
-
|
|
74
|
-
cancel: () => {
|
|
75
|
-
onFinish(false);
|
|
76
|
-
},
|
|
77
|
-
};
|
|
47
|
+
({ commands }) => {
|
|
48
|
+
return commands.insertContent({
|
|
49
|
+
type: this.name,
|
|
78
50
|
});
|
|
79
|
-
|
|
80
|
-
return true;
|
|
81
51
|
},
|
|
82
52
|
};
|
|
83
53
|
},
|
|
84
|
-
});
|
|
54
|
+
});
|