Commit Graph

106 Commits

Author SHA1 Message Date
Andrew Kingston f2b12bcf45 Component error state improvements (#10136)
* Tidy logic for creating initial component instances

* Add initial implementation of enriching empty settings

* Fix regression that prevented custom placeholders from working (#9994)

* Tidy up

* Add automatic naming of form fields when added

* Update missing required setting placeholder

* Improve error states and add ability to automatically wrap a component in a required parent type

* Fix crash in column editor and rename component placeholder to error state

* Select the parent component after adding it when wrapping a component with a missing ancestor

* Fix blocks and make fields require forms

* Improve empty component placeholder

* Lint
2023-03-28 21:11:33 +01:00
Andrew Kingston 9ec58ca401 Use the new DOM ID method of determining the correct DOM node for a component 2022-11-23 12:32:40 +00:00
Andrew Kingston c01b9af1f0 Merge branch 'develop' of github.com:Budibase/budibase into side-panel 2022-11-22 16:52:09 +00:00
Dean a69bccae24 Ensure the navigation does not show the settings bar 2022-11-17 14:40:16 +00:00
Dean c33e13fa4b Don't show delete or duplicate actions in the component settings bar 2022-11-17 14:10:55 +00:00
Dean dd065c0f55 Component settings bar now on by default. Manifest config cleared of showSettingsBar properties 2022-11-17 11:08:23 +00:00
Andrew Kingston 058547fd67 Add initial version of side panel component 2022-10-27 08:08:35 +01:00
Andrew Kingston c888b703dd Improve comments and namimg conventions 2022-10-24 13:32:48 +01:00
Andrew Kingston 6615027403 Fix selection indicator appearing while dragging 2022-10-24 13:24:19 +01:00
Andrew Kingston 3951550074 Make grid rows and columns configurable and simplify grid style application 2022-10-24 12:05:59 +01:00
Andrew Kingston fb0866f0d9 Tidy up 2022-10-24 09:43:45 +01:00
Andrew Kingston c111f02e70 Improve client grid DND event handling 2022-10-24 09:38:07 +01:00
Andrew Kingston ce78c5ecb9 Refactor app preview event sending to support async callbacks in client library 2022-10-24 09:02:50 +01:00
Andrew Kingston b26ab6f8b3 Fix flashing settings bar in stale position 2022-10-21 17:51:35 +01:00
Andrew Kingston 24cc71267c Fix stale hover indiciator 2022-10-21 17:51:25 +01:00
Andrew Kingston 794db1a7db Make DND feel much smoother by persisting the end position of drops, and more performance by properly memoizing some state values 2022-10-21 16:54:34 +01:00
Andrew Kingston 73a229b9ec Add proper validation for nesting illegal combinations of components 2022-10-20 16:03:53 +01:00
Andrew Kingston 1dffcd8d6c Update how grid DND styles are applied to remove flashing 2022-10-20 08:43:33 +01:00
Andrew Kingston 9a94e9da7c Use a container as the DND placeholder and use approx size when dragging into grids 2022-10-19 14:39:28 +01:00
Andrew Kingston 645235be96 Fix resizing not working inside grids 2022-10-19 13:16:42 +01:00
Andrew Kingston a367863d43 Allow normal DND in and out of grid children 2022-10-18 18:49:24 +01:00
Andrew Kingston a870d2473d Allow grid DND without selecting components 2022-10-18 18:29:21 +01:00
Andrew Kingston 15bbc78847 Add grid functionality separately to DND 2022-10-18 16:18:22 +01:00
Andrew Kingston 774566d03b Merge branch 'dnd-improvements' of github.com:Budibase/budibase into cheeks-lab-day-grid 2022-10-18 08:12:11 +01:00
Andrew Kingston 8c1c84e9aa Use requestAnimationFrame for DND overlay placeholder updates to further improve performance 2022-10-17 08:48:32 +01:00
Andrew Kingston fecb8bb1a6 Fix DND not working in field groups and any other component where children are not rendered inside the first DOM node 2022-10-14 19:34:23 +01:00
Andrew Kingston ef28b10def Prevent showing placeholder dot when placeholder is invisible 2022-10-14 19:04:05 +01:00
Andrew Kingston 1a210e3ee6 Fix issues dropping components from new component panel 2022-10-14 18:24:47 +01:00
Andrew Kingston 2ffb29dddf Invert some client store dependencies to improve performance and prevent dependency cycles 2022-10-14 18:16:19 +01:00
Andrew Kingston 4e94b6633f Don't reset component padded state for DND until dragging stops, to prevent jankiness due to losing space 2022-10-14 15:45:02 +01:00
Andrew Kingston a71a553ee6 Add ability to drag new components into the preview 2022-10-14 13:37:14 +01:00
Andrew Kingston f7d6e8db60 Improve DND experience, use correct size of drop placeholder and don't drop if the position is unchanged 2022-10-11 16:02:09 +01:00
Andrew Kingston efe9425d3d Improve column/row detection by appending an ephemeral child component and tune timings 2022-10-11 08:52:45 +01:00
Andrew Kingston e90a79257f Remove dragged component from consideration of drop target 2022-10-10 14:00:37 +01:00
Andrew Kingston 73a206e2f1 Fully remove source component from client tree while dragging 2022-10-10 09:51:13 +01:00
Andrew Kingston b2be069ef1 Make DND work again by converting new parent+index params into old target+mode 2022-10-10 09:36:17 +01:00
Andrew Kingston 7d72cee304 Tune DND throttle rate 2022-10-10 09:22:47 +01:00
Andrew Kingston 0d35e03bdf Rename DND state variables for clarity 2022-10-08 15:28:22 +01:00
Andrew Kingston 234d8953f2 Fix row/column detection, add comments and remove old code 2022-10-08 15:18:05 +01:00
Andrew Kingston c2b32f8c5e Throttle updates to prevent all jank and revert to component center breakboints for DND candidates 2022-10-08 15:04:18 +01:00
Andrew Kingston 09f2cc1f72 Reduce jank by computing symmetrical component breakpoint whens considering DND candidate positions and ignoring the hidden selected component 2022-10-07 20:00:25 +01:00
Andrew Kingston 5beb6819ec Fix issue with layout determination 2022-10-07 12:45:22 +01:00
Andrew Kingston d4a767f93e Improve row vs column detection to fix any edge cases 2022-10-07 08:46:38 +01:00
Andrew Kingston bb8388133a Rewrite drag and drop from scratch using mouse position heuristics 2022-10-07 08:05:44 +01:00
Andrew Kingston 9c82a9d073 Don't clear drop target on invalid selection 2022-10-06 09:17:26 +01:00
Andrew Kingston 166064f6df Don't clear grid dnd state when loading client library 2022-08-26 14:47:29 +01:00
Andrew Kingston b839325a86 Add initial work on grid layout 2022-08-26 08:47:50 +01:00
Andrew Kingston 98864c9614 Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-keyboard-shortcuts-develop 2022-08-01 19:08:30 +01:00
Andrew Kingston a9a4b6ee44 Add keybindings to component context menu. Add duplicate keybinding. Simplify pasting 2022-07-29 13:33:04 +01:00
Andrew Kingston a4847a471c Add keyboard shortcuts for components. Improve component reordering 2022-07-29 13:33:02 +01:00