@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
@@ -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 _this2$options;
77
- var editor = _ref2.editor;
78
- var _ref3 = ((_this2$options = _this2.options) === null || _this2$options === void 0 ? void 0 : _this2$options.imageHandling) || {},
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","_this2$options","editor","_ref3","imageHandling","insertImageRequested","onFinish","fileChosen","file","chain","focus","insertContent","type","attrs","URL","createObjectURL","run","cancel"],"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 ({ editor }) => {\n const { insertImageRequested } = this.options?.imageHandling || {};\n if (!insertImageRequested) return false;\n\n insertImageRequested(null, (onFinish) => {\n return {\n fileChosen: (file) => {\n if (!file) {\n onFinish(false);\n return;\n }\n\n // only insert after file is chosen\n editor\n .chain()\n .focus()\n .insertContent({\n type: this.name,\n attrs: {\n src: URL.createObjectURL(file), // or leave null if upload handles it\n },\n })\n .run();\n\n onFinish(true);\n },\n\n cancel: () => {\n onFinish(false);\n },\n };\n });\n\n return true;\n },\n };\n },\n});\n"],"mappings":"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","ignoreList":[]}
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.27",
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": "df6d3c3a06a0b94db8a51ea0e8237577c58b9f46",
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 returns false when insertImageRequested is not configured', () => {
122
+ it('setImageUploadNode inserts content', () => {
123
123
  const context = { name: 'imageUploadNode' };
124
124
  const commands = ImageUploadNode.addCommands.call(context);
125
-
126
- const result = commands.setImageUploadNode()({ editor: {} });
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
- const result = commands.setImageUploadNode()({ editor: mockEditor });
142
-
143
- expect(mockInsertImageRequested).toHaveBeenCalledWith(null, expect.any(Function));
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
  });
@@ -44,41 +44,11 @@ export const ImageUploadNode = Node.create({
44
44
  return {
45
45
  setImageUploadNode:
46
46
  () =>
47
- ({ editor }) => {
48
- const { insertImageRequested } = this.options?.imageHandling || {};
49
- if (!insertImageRequested) return false;
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
+ });