sanity-plugin-markdown 2.0.2 → 2.1.1
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.
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"workbench.colorCustomizations": {
|
|
3
|
+
"activityBar.activeBackground": "#ab307e",
|
|
4
|
+
"activityBar.activeBorder": "#25320e",
|
|
5
|
+
"activityBar.background": "#ab307e",
|
|
6
|
+
"activityBar.foreground": "#e7e7e7",
|
|
7
|
+
"activityBar.inactiveForeground": "#e7e7e799",
|
|
8
|
+
"activityBarBadge.background": "#25320e",
|
|
9
|
+
"activityBarBadge.foreground": "#e7e7e7",
|
|
10
|
+
"sash.hoverBorder": "#ab307e",
|
|
11
|
+
"statusBar.background": "#832561",
|
|
12
|
+
"statusBar.foreground": "#e7e7e7",
|
|
13
|
+
"statusBarItem.hoverBackground": "#ab307e",
|
|
14
|
+
"statusBarItem.remoteBackground": "#832561",
|
|
15
|
+
"statusBarItem.remoteForeground": "#e7e7e7",
|
|
16
|
+
"titleBar.activeBackground": "#832561",
|
|
17
|
+
"titleBar.activeForeground": "#e7e7e7",
|
|
18
|
+
"titleBar.inactiveBackground": "#83256199",
|
|
19
|
+
"titleBar.inactiveForeground": "#e7e7e799"
|
|
20
|
+
},
|
|
21
|
+
"peacock.color": "#832561"
|
|
22
|
+
}
|
package/lib/components/Editor.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default =
|
|
6
|
+
exports.default = void 0;
|
|
7
7
|
|
|
8
8
|
var React = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
@@ -13,11 +13,13 @@ var _reactMarkdown = _interopRequireDefault(require("react-markdown"));
|
|
|
13
13
|
|
|
14
14
|
var _remarkGfm = _interopRequireDefault(require("remark-gfm"));
|
|
15
15
|
|
|
16
|
+
var _autoId = require("@reach/auto-id");
|
|
17
|
+
|
|
16
18
|
var _patchEvent = _interopRequireWildcard(require("part:@sanity/form-builder/patch-event"));
|
|
17
19
|
|
|
18
20
|
var _client = _interopRequireDefault(require("part:@sanity/base/client"));
|
|
19
21
|
|
|
20
|
-
var
|
|
22
|
+
var _components = require("@sanity/base/components");
|
|
21
23
|
|
|
22
24
|
var _useDebounce = _interopRequireDefault(require("../hooks/useDebounce"));
|
|
23
25
|
|
|
@@ -25,9 +27,9 @@ require("react-mde/lib/styles/css/react-mde-all.css?raw");
|
|
|
25
27
|
|
|
26
28
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
27
29
|
|
|
28
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
30
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
31
|
|
|
30
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
32
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
33
|
|
|
32
34
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
33
35
|
|
|
@@ -37,7 +39,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
37
39
|
|
|
38
40
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
39
41
|
|
|
40
|
-
function _iterableToArrayLimit(arr, i) {
|
|
42
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
41
43
|
|
|
42
44
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
43
45
|
|
|
@@ -47,7 +49,7 @@ function _wrapAsyncGenerator(fn) { return function () { return new _AsyncGenerat
|
|
|
47
49
|
|
|
48
50
|
function _AsyncGenerator(gen) { var front, back; function send(key, arg) { return new Promise(function (resolve, reject) { var request = { key: key, arg: arg, resolve: resolve, reject: reject, next: null }; if (back) { back = back.next = request; } else { front = back = request; resume(key, arg); } }); } function resume(key, arg) { try { var result = gen[key](arg); var value = result.value; var wrappedAwait = value instanceof _AwaitValue; Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) { if (wrappedAwait) { resume(key === "return" ? "return" : "next", arg); return; } settle(result.done ? "return" : "normal", arg); }, function (err) { resume("throw", err); }); } catch (err) { settle("throw", err); } } function settle(type, value) { switch (type) { case "return": front.resolve({ value: value, done: true }); break; case "throw": front.reject(value); break; default: front.resolve({ value: value, done: false }); break; } front = front.next; if (front) { resume(front.key, front.arg); } else { back = null; } } this._invoke = send; if (typeof gen.return !== "function") { this.return = undefined; } }
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
_AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; };
|
|
51
53
|
|
|
52
54
|
_AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };
|
|
53
55
|
|
|
@@ -57,7 +59,7 @@ _AsyncGenerator.prototype.return = function (arg) { return this._invoke("return"
|
|
|
57
59
|
|
|
58
60
|
function _AwaitValue(value) { this.wrapped = value; }
|
|
59
61
|
|
|
60
|
-
var Preview =
|
|
62
|
+
var Preview = _ref2 => {
|
|
61
63
|
var markdown = _ref2.markdown;
|
|
62
64
|
return /*#__PURE__*/React.createElement(_reactMarkdown.default, {
|
|
63
65
|
plugins: [_remarkGfm.default]
|
|
@@ -66,9 +68,16 @@ var Preview = (_ref2) => {
|
|
|
66
68
|
|
|
67
69
|
var defaultToolbarCommands = [['header', 'bold', 'italic', 'strikethrough'], ['link', 'quote', 'code'], ['unordered-list', 'ordered-list', 'checked-list']];
|
|
68
70
|
|
|
69
|
-
function
|
|
71
|
+
var _default = /*#__PURE__*/React.forwardRef(function MarkdownEditor(props, ref) {
|
|
70
72
|
var type = props.type,
|
|
71
|
-
value = props.value
|
|
73
|
+
_props$value = props.value,
|
|
74
|
+
value = _props$value === void 0 ? '' : _props$value,
|
|
75
|
+
markers = props.markers,
|
|
76
|
+
onBlur = props.onBlur,
|
|
77
|
+
onChange = props.onChange,
|
|
78
|
+
onFocus = props.onFocus,
|
|
79
|
+
presence = props.presence,
|
|
80
|
+
readOnly = props.readOnly;
|
|
72
81
|
var _type$options = type.options,
|
|
73
82
|
options = _type$options === void 0 ? {} : _type$options;
|
|
74
83
|
|
|
@@ -83,14 +92,23 @@ function Editor(props) {
|
|
|
83
92
|
setEditedValue = _React$useState4[1];
|
|
84
93
|
|
|
85
94
|
var debouncedValue = (0, _useDebounce.default)(editedValue, 100);
|
|
95
|
+
var textarea = React.useRef(); // Conditionally update textarea styles based on read only access.
|
|
96
|
+
// It's also possible to define inline styles via `childProps.textArea.style` on `<ReactMde />`,
|
|
97
|
+
// but this will override any dynamically created styles provided by the component itself.
|
|
98
|
+
|
|
99
|
+
React.useEffect(() => {
|
|
100
|
+
if (textarea.current) {
|
|
101
|
+
textarea.current.style.backgroundColor = readOnly ? 'rgba(240,240,240)' : 'rgba(255,255,255)';
|
|
102
|
+
}
|
|
103
|
+
}, [textarea]);
|
|
86
104
|
React.useEffect(() => {
|
|
87
105
|
setEditedValue(value);
|
|
88
106
|
}, [value]);
|
|
89
107
|
React.useEffect(() => {
|
|
90
|
-
if (!debouncedValue
|
|
91
|
-
|
|
108
|
+
if (!debouncedValue && value) {
|
|
109
|
+
onChange(_patchEvent.default.from([(0, _patchEvent.unset)()]));
|
|
92
110
|
} else if (debouncedValue !== value) {
|
|
93
|
-
|
|
111
|
+
onChange(_patchEvent.default.from([(0, _patchEvent.set)(debouncedValue)]));
|
|
94
112
|
}
|
|
95
113
|
}, [debouncedValue]);
|
|
96
114
|
|
|
@@ -112,33 +130,51 @@ function Editor(props) {
|
|
|
112
130
|
return function saveImage(_x) {
|
|
113
131
|
return _ref.apply(this, arguments);
|
|
114
132
|
};
|
|
115
|
-
}();
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
133
|
+
}(); // Generate a random ID to link our FormField label and input component
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
var inputId = (0, _autoId.useId)();
|
|
137
|
+
return /*#__PURE__*/React.createElement(_components.FormField, {
|
|
138
|
+
description: type.description // Creates description from schema
|
|
139
|
+
,
|
|
140
|
+
inputId: inputId // A unique ID for this input
|
|
141
|
+
,
|
|
142
|
+
title: type.title // Creates label from schema title
|
|
143
|
+
,
|
|
144
|
+
__unstable_markers: markers // Handles all markers including validation
|
|
145
|
+
,
|
|
146
|
+
__unstable_presence: presence // Handles presence avatars
|
|
147
|
+
|
|
123
148
|
}, /*#__PURE__*/React.createElement("div", {
|
|
124
|
-
|
|
149
|
+
ref: ref
|
|
125
150
|
}, /*#__PURE__*/React.createElement(_reactMde.default, {
|
|
126
151
|
toolbarCommands: options['toolbar'] || defaultToolbarCommands,
|
|
127
152
|
value: editedValue,
|
|
128
153
|
onChange: setEditedValue,
|
|
129
154
|
selectedTab: selectedTab,
|
|
130
155
|
onTabChange: setSelectedTab,
|
|
156
|
+
readOnly: readOnly,
|
|
131
157
|
generateMarkdownPreview: markdown => Promise.resolve( /*#__PURE__*/React.createElement(Preview, {
|
|
132
158
|
markdown: markdown
|
|
133
159
|
})),
|
|
134
160
|
childProps: {
|
|
161
|
+
textArea: {
|
|
162
|
+
id: inputId,
|
|
163
|
+
onBlur,
|
|
164
|
+
onFocus
|
|
165
|
+
},
|
|
135
166
|
writeButton: {
|
|
136
167
|
tabIndex: -1
|
|
137
168
|
}
|
|
138
169
|
},
|
|
139
170
|
paste: {
|
|
140
171
|
saveImage
|
|
172
|
+
},
|
|
173
|
+
refs: {
|
|
174
|
+
textarea
|
|
141
175
|
}
|
|
142
176
|
})));
|
|
143
|
-
}
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
exports.default = _default;
|
|
144
180
|
//# sourceMappingURL=Editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/Editor.jsx"],"names":["Preview","markdown","gfm","defaultToolbarCommands","
|
|
1
|
+
{"version":3,"sources":["../../src/components/Editor.jsx"],"names":["Preview","markdown","gfm","defaultToolbarCommands","React","forwardRef","MarkdownEditor","props","ref","type","value","markers","onBlur","onChange","onFocus","presence","readOnly","options","useState","selectedTab","setSelectedTab","editedValue","setEditedValue","debouncedValue","textarea","useRef","useEffect","current","style","backgroundColor","PatchEvent","from","saveImage","data","client","sanityClient","withConfig","apiVersion","success","result","assets","upload","then","doc","url","catch","inputId","description","title","Promise","resolve","textArea","id","writeButton","tabIndex"],"mappings":"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","sourcesContent":["import * as React from 'react'\nimport ReactMde from 'react-mde'\nimport ReactMarkdown from 'react-markdown'\nimport gfm from 'remark-gfm'\nimport {useId} from '@reach/auto-id'\n\nimport PatchEvent, {set, unset} from 'part:@sanity/form-builder/patch-event'\nimport sanityClient from 'part:@sanity/base/client'\nimport {FormField} from '@sanity/base/components'\n\nimport useDebounce from '../hooks/useDebounce'\n\nimport 'react-mde/lib/styles/css/react-mde-all.css?raw'\n\nconst Preview = ({markdown}) => {\n return <ReactMarkdown plugins={[gfm]}>{markdown}</ReactMarkdown>\n}\n\nconst defaultToolbarCommands = [\n ['header', 'bold', 'italic', 'strikethrough'],\n ['link', 'quote', 'code'],\n ['unordered-list', 'ordered-list', 'checked-list'],\n]\n\nexport default React.forwardRef(function MarkdownEditor(props, ref) {\n const {type, value = '', markers, onBlur, onChange, onFocus, presence, readOnly} = props\n const {options = {}} = type\n const [selectedTab, setSelectedTab] = React.useState('write')\n const [editedValue, setEditedValue] = React.useState(value)\n const debouncedValue = useDebounce(editedValue, 100)\n const textarea = React.useRef()\n\n // Conditionally update textarea styles based on read only access.\n // It's also possible to define inline styles via `childProps.textArea.style` on `<ReactMde />`,\n // but this will override any dynamically created styles provided by the component itself.\n React.useEffect(() => {\n if (textarea.current) {\n textarea.current.style.backgroundColor = readOnly ? 'rgba(240,240,240)' : 'rgba(255,255,255)'\n }\n }, [textarea])\n\n React.useEffect(() => {\n setEditedValue(value)\n }, [value])\n\n React.useEffect(() => {\n if (!debouncedValue && value) {\n onChange(PatchEvent.from([unset()]))\n } else if (debouncedValue !== value) {\n onChange(PatchEvent.from([set(debouncedValue)]))\n }\n }, [debouncedValue])\n\n const saveImage = async function* (data) {\n const client = sanityClient.withConfig({apiVersion: '2021-03-25'})\n\n let success = true\n const result = await client.assets\n .upload('image', data)\n .then((doc) => `${doc.url}?w=450`)\n .catch(() => {\n success = false\n return `Error: Could not upload file. Only images are supported.`\n })\n\n yield result\n return success\n }\n\n // Generate a random ID to link our FormField label and input component\n const inputId = useId()\n\n return (\n <FormField\n description={type.description} // Creates description from schema\n inputId={inputId} // A unique ID for this input\n title={type.title} // Creates label from schema title\n __unstable_markers={markers} // Handles all markers including validation\n __unstable_presence={presence} // Handles presence avatars\n >\n {/*\n Assign our forwarded ref to a wrapper element.\n\n Ideally, this should be assigned to the textarea inside <ReactMde /> component.\n Whilst `react-mde` does allow you to target individual sub-components' refs,\n it will complain if you try and assign a forwarded ref.\n */}\n <div ref={ref}>\n <ReactMde\n toolbarCommands={options['toolbar'] || defaultToolbarCommands}\n value={editedValue}\n onChange={setEditedValue}\n selectedTab={selectedTab}\n onTabChange={setSelectedTab}\n readOnly={readOnly}\n generateMarkdownPreview={(markdown) => Promise.resolve(<Preview markdown={markdown} />)}\n childProps={{\n textArea: {\n id: inputId,\n onBlur,\n onFocus,\n },\n writeButton: {\n tabIndex: -1,\n },\n }}\n paste={{saveImage}}\n refs={{textarea}}\n />\n </div>\n </FormField>\n )\n})\n"],"file":"Editor.js"}
|
package/lib/hooks/useDebounce.js
CHANGED
|
@@ -7,9 +7,9 @@ exports.default = useDebounce;
|
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
9
|
|
|
10
|
-
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
11
|
|
|
12
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
13
13
|
|
|
14
14
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
19
19
|
|
|
20
20
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
21
21
|
|
|
22
|
-
function _iterableToArrayLimit(arr, i) {
|
|
22
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
23
23
|
|
|
24
24
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
25
25
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/hooks/useDebounce.js"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;;;;;AACe,SAASA,WAAT,CAAqBC,KAArB,EAA4BC,KAA5B,EAAmC;
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/useDebounce.js"],"names":["useDebounce","value","delay","debouncedValue","setDebouncedValue","handler","setTimeout","clearTimeout"],"mappings":";;;;;;;AAAA;;;;;;;;;;;;;;;;;;AACe,SAASA,WAAT,CAAqBC,KAArB,EAA4BC,KAA5B,EAAmC;AAChD,kBAA4C,qBAASD,KAAT,CAA5C;AAAA;AAAA,MAAOE,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,wBAAU,MAAM;AACd,QAAMC,OAAO,GAAGC,UAAU,CAAC,MAAM;AAC/BF,MAAAA,iBAAiB,CAACH,KAAD,CAAjB;AACD,KAFyB,EAEvBC,KAFuB,CAA1B;AAIA,WAAO,MAAMK,YAAY,CAACF,OAAD,CAAzB;AACD,GAND,EAMG,CAACJ,KAAD,CANH;AAQA,SAAOE,cAAP;AACD","sourcesContent":["import React, {useState, useEffect} from 'react'\nexport default function useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value)\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n return () => clearTimeout(handler)\n }, [value])\n\n return debouncedValue\n}\n"],"file":"useDebounce.js"}
|
package/lib/schemaType.js
CHANGED
|
@@ -10,8 +10,8 @@ var _Editor = _interopRequireDefault(require("./components/Editor"));
|
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
11
|
|
|
12
12
|
var _default = {
|
|
13
|
-
type:
|
|
14
|
-
name:
|
|
13
|
+
type: 'string',
|
|
14
|
+
name: 'markdown',
|
|
15
15
|
inputComponent: _Editor.default
|
|
16
16
|
};
|
|
17
17
|
exports.default = _default;
|
package/lib/schemaType.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schemaType.js"],"names":["type","name","inputComponent","Editor"],"mappings":";;;;;;;AAAA;;;;eAEe;AACbA,EAAAA,IAAI,EAAE,QADO;AAEbC,EAAAA,IAAI,EAAE,UAFO;AAGbC,EAAAA,cAAc,EAAEC;AAHH,C","sourcesContent":["import Editor from
|
|
1
|
+
{"version":3,"sources":["../src/schemaType.js"],"names":["type","name","inputComponent","Editor"],"mappings":";;;;;;;AAAA;;;;eAEe;AACbA,EAAAA,IAAI,EAAE,QADO;AAEbC,EAAAA,IAAI,EAAE,UAFO;AAGbC,EAAAA,cAAc,EAAEC;AAHH,C","sourcesContent":["import Editor from './components/Editor'\n\nexport default {\n type: 'string',\n name: 'markdown',\n inputComponent: Editor,\n}\n"],"file":"schemaType.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sanity-plugin-markdown",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Markdown fields in Sanity Studio. Supports Github flavored Markdown and image uploads.",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "sanipack build",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"author": "Sanity.io <hello@sanity.io>",
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
|
+
"@reach/auto-id": "^0.13.2",
|
|
20
21
|
"react-markdown": "^5.0.3",
|
|
21
22
|
"react-mde": "^11.5.0",
|
|
22
23
|
"remark-gfm": "^1.0.0"
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
"sanipack": "^2.0.1"
|
|
31
32
|
},
|
|
32
33
|
"peerDependencies": {
|
|
34
|
+
"@sanity/base": "^2.21.5",
|
|
33
35
|
"react": "^17.0.0"
|
|
34
36
|
},
|
|
35
37
|
"prettier": {
|