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
Andrew Kingston
c48a56b997
Fix issue editing components in the preview when nested inside another draggable component
2021-10-28 15:52:07 +01:00
Andrew Kingston
b522726afc
Allow in-preview editing of paragraphs and headings
2021-10-28 12:43:31 +01:00
Andrew Kingston
495c20f851
Simplify client app component re-render keying
2021-09-20 15:41:20 +01:00
Andrew Kingston
488ec4d988
Refactor client app data tags to be classnames and simplify logic
2021-09-20 15:34:51 +01:00
Andrew Kingston
10f754a9ad
Remove preview specific data tags from components when running real apps
2021-09-20 12:16:23 +01:00
Andrew Kingston
e19d17c4f5
Prevent DND targetting either above or below the screen/layout, and fix bug determinging whether a drop target is valid
2021-09-20 09:12:35 +01:00
Andrew Kingston
8cf3971b47
Only allow dropping inside empty components that accept children to massively reduce the amount of unwanted drop targets due to parent container components
2021-09-20 08:26:44 +01:00