Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New component drag-and-drop improvements #15497

Merged
merged 24 commits into from
Feb 13, 2025
Merged

Conversation

aptkingston
Copy link
Member

@aptkingston aptkingston commented Feb 6, 2025

Description

This PR updates and refactors a lot of the drag and drop code, particularly when adding components. The primary new feature is the ability to drag components directly on to grid screens, in the position of your choice.

Here's an example of adding a few new components to a grid screen:

Screen.Recording.2025-02-12.at.15.02.27.mov

Dragging components on to flex screens is unaffected.

Other stuff

  • Updates all client import aliases to use new @/xxx approach (same as builder)
  • Converts all DND related components and stores to typescript
  • Converts all code relating to "indicators" (selected component, hovered component, new dragged component) to typescript
  • Improves performance of DND

Copy link

qa-wolf bot commented Feb 6, 2025

QA Wolf here! As you write new code it's important that your test coverage is keeping up.
Click here to request test coverage for this PR!

@aptkingston aptkingston marked this pull request as ready for review February 10, 2025 09:03
@aptkingston aptkingston marked this pull request as draft February 10, 2025 09:05
@aptkingston aptkingston marked this pull request as ready for review February 12, 2025 15:04
Copy link
Contributor

@deanhannigan deanhannigan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Love it. A really intuitive UX enhancement and some really nice updates to the core DnD behaviour! 🎉

Gave this a rinse locally and didn't run into any issues!

NOTE - Small default size for the following. Have to resize to see the help UX. Not a blocker at all.

  • Dynamic filter
  • Date range
  • Icon

@@ -1,7 +1,7 @@
import { Readable, Writable } from "svelte/store"

declare module "./memo" {
export function memo<T>(value: T): Writable<T>
export function memo<T>(value?: T): Writable<T>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👨‍🍳

@aptkingston
Copy link
Member Author

LGTM! Love it. A really intuitive UX enhancement and some really nice updates to the core DnD behaviour! 🎉

Gave this a rinse locally and didn't run into any issues!

NOTE - Small default size for the following. Have to resize to see the help UX. Not a blocker at all.

  • Dynamic filter
  • Date range
  • Icon

Cheers Dean. Nice one finding those components that look weird by default too, due to error states. I think I'll update the icon to just pick an icon by default to solve that one.

For the others it's not so easy, since they need a data provider. And when there is a data provider, they are much smaller than the error state. I'll add some logic to attempt to auto fill in data provider type settings, which will help reduce the frequency of initial error states.

@aptkingston aptkingston merged commit 6500de7 into master Feb 13, 2025
20 checks passed
@aptkingston aptkingston deleted the grid-new-component-dnd branch February 13, 2025 09:27
@github-actions github-actions bot locked and limited conversation to collaborators Feb 13, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants