pub fn BridgeDropZone<A: Clone + PartialEq + 'static, B: Clone + PartialEq + 'static>(
_: BridgeDropZoneProps<A, B>,
) -> ElementExpand description
A drop target registered in two payload worlds at once - the bridge
between two coexisting providers (DndProvider<A> and DndProvider<B>).
Zone ids are process-global while registries are per-type, so one element
can hold the same ZoneId in both registries. The element fans its
mounted handle and each measurement into both provider-owned geometry
records. Each world’s machinery - hit-testing, accepts filtering,
keyboard navigation - then finds the zone independently, and every drop
arrives through its own typed callback: an A drag can only reach
on_drop_a, a B drag only on_drop_b. No downcasts, no shared erased
channel.
Reach for this only when two providers genuinely coexist (say, tickets
and teammates as separate features). If one drag world merely carries
several shapes, make the payload an enum and use a plain DropZone.
For more than two worlds, generate a component for your exact type list
with crate::bridge_drop_zone! - or go lower-level and call
use_bridge_world once per world yourself.
Styling hooks match DropZone: data-active="true" while an acceptable
drag from either world is in flight, data-over="true" while one
hovers this zone.
§Props
For details, see the props struct definition.
id:Option<ZoneId>Stable identity for this zone, valid in both worlds. Auto-generated if omitted.
label:Option<String>Human label for screen-reader announcements, used by both worlds.
accepts_a:Option<Callback<A,bool>>Return
falseto reject a payload from the first world.accepts_b:Option<Callback<B,bool>>Return
falseto reject a payload from the second world.on_drop_a:EventHandler<DropOutcome<A>>Fired when a drag from the first world drops here.
on_drop_b:EventHandler<DropOutcome<B>>Fired when a drag from the second world drops here.
attributes:Vec<Attribute>children:Element