* dip * dip * scroll * fixes * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * dip * solve for canvas glitches * dip * dip * dip * adjust scroll speed * dip * dip(code clean up) * dip * dip * ---dip * dip * dip * dip * middle ware for dropping multiple widgets. * adding scroll to drag for canvas selection. * fixing drag disabled and modal widget(detach from layout) drops * firefox and safari fixes * rebase conflicts. * fixing broken specs. * fixing specs and adding jest tests. * show border and disable resize when multiple widgets are selected. * selection box grab cursor * merge conflicts. * code clean up * fixing specs. * fixed a bug and failed specs. * fixing rerenders. * code clean up * code review comments * always have the drag point inside the widget. * fetching snap spaces instead of calculating. * remove widget_move action * fixing bugs with add widget parent height updation. * fixing specs. * List widget conflict fixes. * fixing canvas drop persistence. * Adding click to drag for modals and fixing few issues.
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import { WidgetType } from "constants/WidgetConstants";
|
|
import generate from "nanoid/generate";
|
|
|
|
const ALPHANUMERIC = "1234567890abcdefghijklmnopqrstuvwxyz";
|
|
// const ALPHABET = "abcdefghijklmnopqrstuvwxyz";
|
|
|
|
export const generateReactKey = ({
|
|
prefix = "",
|
|
}: { prefix?: string } = {}): string => {
|
|
return prefix + generate(ALPHANUMERIC, 10);
|
|
};
|
|
|
|
// Before you change how this works
|
|
// This className is used for the following:
|
|
// 1. Resize bounds
|
|
// 2. Property pane reference for positioning
|
|
// 3. Table widget filter pan reference for positioning
|
|
export const generateClassName = (seed?: string) => {
|
|
return `appsmith_widget_${seed}`;
|
|
};
|
|
|
|
export const getCanvasClassName = () => "canvas";
|
|
|
|
export const getNearestParentCanvas = (el: Element | null) => {
|
|
const canvasQuerySelector = `.${getCanvasClassName()}`;
|
|
if (el) return el.closest(canvasQuerySelector);
|
|
return null;
|
|
};
|
|
|
|
export const getNearestWidget = (el: Element | null, type: WidgetType) => {
|
|
const canvasQuerySelector = `div[type="${type}"]`;
|
|
if (el) return el.closest(canvasQuerySelector);
|
|
return null;
|
|
};
|
|
|
|
export default {
|
|
generateReactKey,
|
|
generateClassName,
|
|
};
|