30 lines
755 B
JavaScript
30 lines
755 B
JavaScript
export const hasSelection = (tiptapEditor) => {
|
|
const { from, to } = tiptapEditor.state.selection;
|
|
|
|
return from < to;
|
|
};
|
|
|
|
/**
|
|
* Extracts filename from a URL
|
|
*
|
|
* @example
|
|
* > extractFilename('https://gitlab.com/images/logo-full.png')
|
|
* < 'logo-full'
|
|
*
|
|
* @param {string} src The URL to extract filename from
|
|
* @returns {string}
|
|
*/
|
|
export const extractFilename = (src) => {
|
|
return src.replace(/^.*\/|\.[^.]+?$/g, '');
|
|
};
|
|
|
|
export const readFileAsDataURL = (file) => {
|
|
return new Promise((resolve) => {
|
|
const reader = new FileReader();
|
|
reader.addEventListener('load', (e) => resolve(e.target.result), { once: true });
|
|
reader.readAsDataURL(file);
|
|
});
|
|
};
|
|
|
|
export const clamp = (n, min, max) => Math.max(Math.min(n, max), min);
|