Commit Graph

208 Commits

Author SHA1 Message Date
Andrew Kingston c78fcb2ba6 Ensure 'table' type settings are migrated and handled properly. Allow deleting rows from views 2023-08-24 15:50:57 +01:00
Andrew Kingston a83e987dcd Stop preview jumping when scrolling to components, and improve scrolling behaviour 2023-08-22 18:55:36 +01:00
Gerard Burns 6886a312c5 New Left Panel for Design 2023-08-18 12:46:41 +01:00
Andrew Kingston b82a34d7e1 Tidy up 2023-07-25 15:35:58 +01:00
Andrew Kingston b8bc25a39a Merge branch 'develop' of github.com:Budibase/budibase into global-bindings 2023-07-25 09:43:58 +01:00
Gerard Burns 808e0d1ef2 Linting improvements (#11119) 2023-07-05 18:00:50 +01:00
Andrew Kingston d03f96ceb8 Make all blindings global and improve client component performance 2023-04-28 09:03:09 +01:00
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 1b2b4dba88 Revert skeleton loaders and restore required setting functionality (#9979) 2023-03-27 14:43:29 +01:00
Andrew Kingston fee091b081 Allow updating nested settings via conditional UI (#9748)
* Allow updating nested settings via conditional UI

* Tidy up comments

* Improve safety when generating conditions

---------

Co-authored-by: Rory Powell <rory.codes@gmail.com>
2023-02-22 13:22:59 +00:00
Rory Powell bb1faac62a Merge master into develop 2023-02-15 15:10:02 +00:00
Andrew Kingston b06c6852a3 Optimise client library performance with skeleton loaders (#9256)
* Treat empty string default values as nullish when considering whether field default values should be applied to the real field value

* Add flag to allow not loading data immediately upon creation of a data fetch object

* Use loading context inside forms to avoid wasted renders while form schema are loading

* Wait for parent data providers to finish loading before loading their own data

* Optimise data provider to reduce updates as much as possible

* Allow forms to render content immediately again, but use the loading context to inform data providers to wait for them

* Remove fetchOnCreation flag for data fetches as now redundant

* Fix issue with deleting the selected button action when the next action has no parameters

* Lint
2023-01-11 08:01:41 +00:00
Gerard Burns 6e4f560948 Skeleton Fixes (#8845) 2022-12-02 09:24:05 +00:00
Andrew Kingston abedb5d9eb Merge branch 'develop' of github.com:Budibase/budibase into side-panel 2022-11-25 11:24:57 +00:00
Gerard Burns a2889ec1a3 Skeleton Loading States (#8719)
* Loading Skeletons

* PR Feedback
2022-11-25 10:02:43 +00:00
Andrew Kingston fb9dd20c11 Update side panel styles and ensure side panel properly reveals itself in the builder 2022-11-10 14:34:23 +00:00
Andrew Kingston db55041c44 Slightly reduce DND padding between nested layers 2022-10-25 16:18:33 +01:00
Andrew Kingston 729c4d082e Remove unnecessary code 2022-10-24 13:33:33 +01:00
Andrew Kingston 1a37e1fc95 Remove some unnecessary code 2022-10-24 13:28:22 +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 c111f02e70 Improve client grid DND event handling 2022-10-24 09:38:07 +01:00
Andrew Kingston 67b6821b37 Fix components being selected when starting dragging 2022-10-21 16:52:46 +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 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 682203fbda Only transition padding when expanding components during DND, but remove it immediately on drop to avoid layout thrashing 2022-10-17 09:00:55 +01:00
Andrew Kingston 0e83bcfe9e Update styles of padded DND components 2022-10-14 20:30:58 +01:00
Andrew Kingston 3f429ff3ce Lint and prevent scrolling to selected component when starting dragging 2022-10-14 19:45:47 +01:00
Andrew Kingston 1b08e88c6f Fix double empty state around blocks 2022-10-14 18:59:32 +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 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 608e41277a Reduce padding when dragging over a component tree and remove unused component class names 2022-10-08 15:32:36 +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 d4a767f93e Improve row vs column detection to fix any edge cases 2022-10-07 08:46:38 +01:00
Andrew Kingston c4bb3ac014 Only explode components when dragging over them 2022-10-07 08:20:51 +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 e0fcb20fbe Expand component trees with padding when dragging and dropping 2022-09-28 14:16:09 +01:00
Andrew Kingston 0a80947b51 Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-grid 2022-09-26 16:22:13 +01:00
Martin McKeaveney 45e9da64e2 Merge pull request #7644 from Budibase/custom-css-upgrades
Custom CSS upgrades
2022-09-21 15:35:42 +01:00
Andrew Kingston 45627661f1 Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-grid 2022-09-20 17:23:52 +01:00
Rory Powell 45a43baee2 Merge branch 'master' into develop 2022-09-12 14:05:36 +01:00
Andrew Kingston 1bc6f30b6c Fix component empty state and invalid state styling 2022-09-12 08:50:22 +01:00
Andrew Kingston e07cffbc59 Remove log 2022-09-06 12:26:56 +01:00
Andrew Kingston d6d26e126c Allow custom CSS to be bindable and allow overriding via conditional UI 2022-09-05 16:35:25 +01:00
Andrew Kingston b839325a86 Add initial work on grid layout 2022-08-26 08:47:50 +01:00
Mel O'Hagan 075611b2fa Update CSS conditional UI 2022-08-22 16:45:59 +01:00
Andrew Kingston 3b3d48196e Transparently hot reload app preview when inserting a custom component bundle and reload relevant components 2022-08-11 17:05:42 +01:00
Andrew Kingston eab1b93c24 Update client library to full handle custom components 2022-08-10 15:34:00 +01:00
Andrew Kingston 6b9898f9ad Merge pull request #6735 from Budibase/fix/dom-children
Replace incorrect usages of element.childNodes with element.children
2022-07-21 09:24:47 +01:00
Andrew Kingston c9ee465507 Replace incorrect usages of element.childNodes with element.children 2022-07-15 13:47:39 +01:00
Andrew Kingston 80018e9668 Visually hide components when cutting but do not remove from real definition 2022-07-15 13:09:43 +01:00
Andrew Kingston b5d635c83f Merge branch 'develop' of github.com:Budibase/budibase into new-design-ui 2022-06-15 15:32:33 +01:00
Andrew Kingston 2bef536e9a Fix issue where required settings that depend on other settings were still blocking rendering 2022-06-15 10:17:34 +01:00
Andrew Kingston b0fcb0f339 Prevent inline editing of components with missing required settings 2022-06-14 15:34:33 +01:00
Andrew Kingston e097f82b5d Update client library so that component placeholders are always shown when required settings are missing 2022-06-13 12:09:29 +01:00
Andrew Kingston 6e83c96236 Show empty screen placeholder with a CTA to add a component 2022-06-07 13:41:17 +01:00
Dean f1111fffca Updated approach to focus behaviour. Placeholder now updates to direct the user to the next required field they haven't entered 2022-05-30 12:57:10 +01:00
Andrew Kingston fd532a88d5 Improve performance when determining client component icons and update layout to allow for a better visual selection of the navigation section 2022-05-23 12:22:42 +01:00
Andrew Kingston 3c8558e1a0 Update preview indicator offsets 2022-05-17 14:34:54 +01:00
Andrew Kingston 8cdbb690eb Add icons to app preview selection indicators 2022-05-17 14:33:12 +01:00
Andrew Kingston ff47e8acd3 Scroll to the selected component inside the app preview 2022-05-17 14:10:21 +01:00
Andrew Kingston 550511d404 Render screenslot when showing legacy layouts and remove concept of preview type 2022-05-12 09:42:25 +01:00
Andrew Kingston f66f3b7935 Use 'Screen' for the name when selecting the root screen component 2022-05-10 14:10:26 +01:00
Andrew Kingston c2d61d8ebc Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-devtools 2022-04-06 11:50:43 +01:00
Andrew Kingston 9500203515 Add event context to button actions to allow passing in params at run time and add corresponding data bindings 2022-03-15 11:16:51 +00:00
Dean b67b34928a Initial Commit for Issue/3819. World map component added and a small change to the Component draggable behaviour to accomodate it. 2022-03-08 16:41:21 +00:00
Andrew Kingston 755e12a24d Add full featured component settings and bindings devtools tabs 2022-02-24 21:48:54 +00:00
Andrew Kingston c944d1fdf5 Update devtools with new features 2022-02-24 15:36:21 +00:00
Andrew Kingston 0fcfa43790 Fix className autocorrect and make client load time optional 2022-02-24 14:14:55 +00:00
Andrew Kingston 66715b8290 Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-devtools 2022-02-24 14:03:29 +00:00
Andrew Kingston eb1edcd1cc Simply and improve core client library logic 2022-02-01 16:32:37 +00:00
Andrew Kingston 27c2b62223 Remove log statements 2022-02-01 11:55:31 +00:00
Andrew Kingston caf8991d92 Cache the determination of client component settings and simplify initialisationlogic 2022-01-31 18:54:04 +00:00
Andrew Kingston 4b7fe15598 Add experimental support for caching the creation of HBS template functions 2022-01-29 18:53:21 +00:00
Andrew Kingston 604788a244 Fix issue with multiple enrichments before components mount without affecting other components 2022-01-25 11:22:26 +00:00
Andrew Kingston 7656887c1a Fix rare issue which could occur when enriching component props twice before an initial render has taken place 2022-01-24 19:25:19 +00:00
Andrew Kingston aab7adce03 Update remaining dependency issues in client 2022-01-20 10:16:13 +00:00
Andrew Kingston 5fad127f94 Update remaining usage of API in client library 2022-01-20 09:57:57 +00:00
Andrew Kingston 78a3f807a3 Lint 2021-12-17 10:43:27 +00:00
Andrew Kingston 58e0daeb8c Remove initial render of components with undefined props by passing in initial props without triggering svelte invalidation 2021-12-17 09:18:07 +00:00
Andrew Kingston 86065084c1 Update core component handling to use svelte function to manually control props in order to avoid triggering additional reactive statements and improve performance 2021-12-17 08:22:40 +00:00
Andrew Kingston 1b3317a114 Add devtools to app preview and add ability to preview apps as different roles 2021-11-26 13:25:02 +00:00
Andrew Kingston 9057b8e521 Update logic for determining whether to show empty state or not 2021-11-18 20:38:55 +00:00
Andrew Kingston a9a50545c9 Be more explicit about the boolean nature of component settings in the manifest and add back in a render key to fix toggling contenteditable attribute on dom elements 2021-11-18 20:32:42 +00:00
Andrew Kingston 347a0d1d0f Fix crash when component definition is not found 2021-11-18 14:24:10 +00:00
Andrew Kingston 9420ee2b5e Remove log statements 2021-11-16 17:52:14 +00:00
Andrew Kingston f61d89436b Optimise core memoization of client component props to improve performance significantly 2021-11-16 16:29:31 +00:00
Andrew Kingston ce75b8c9a7 Disable drag and drop for components in the selected path when edit mode is enabled to fix firefox issue with text selection when draggable attribute is set 2021-11-16 13:17:34 +00:00
Andrew Kingston 07e455257c Prevent dragging of a component while being edited 2021-11-16 11:46:46 +00:00
Andrew Kingston 2adbaea026 Merge develop into editable text lab day 2021-11-16 11:14:46 +00:00
Andrew Kingston df455c2719 Add data block component 2021-11-12 15:19:25 +00:00
Andrew Kingston a7849eac7d Add card list with search block. Add concept of nested settings which can consume their own contexts and are not enriched at the top level 2021-11-08 14:35:58 +00:00
Andrew Kingston e6ffccaff7 Add generic block structure with support for writing blocks like normal svelte components rather than a JSON builder 2021-11-02 08:45:27 +00:00