Unified layout computation & cleanup
This commit is contained in:
parent
e8ca7c9a12
commit
ae210d5352
4 changed files with 307 additions and 193 deletions
|
|
@ -23,6 +23,7 @@ use uuid::Uuid;
|
|||
use chattyness_db::models::{ChannelMemberWithAvatar, LooseProp, Scene};
|
||||
|
||||
use super::avatar::{Avatar, ScreenBounds, SceneTransform, member_key};
|
||||
use super::constants::{Z_AVATAR_BASE, Z_AVATARS_CONTAINER, Z_CLICK_OVERLAY, Z_FADING_AVATAR, Z_LOOSE_PROP, Z_PROPS};
|
||||
#[cfg(feature = "hydrate")]
|
||||
use super::canvas_utils::hit_test_canvas;
|
||||
use super::chat_types::ActiveBubble;
|
||||
|
|
@ -488,7 +489,7 @@ pub fn RealmSceneViewer(
|
|||
style=move || canvas_style(0)
|
||||
aria-hidden="true"
|
||||
/>
|
||||
<div class="props-container absolute inset-0" style="z-index: 1; pointer-events: none;">
|
||||
<div class="props-container absolute inset-0" style=format!("z-index: {}; pointer-events: none;", Z_PROPS)>
|
||||
<Show when=move || scales_ready.get() fallback=|| ()>
|
||||
{move || {
|
||||
loose_props.get().into_iter().map(|prop| {
|
||||
|
|
@ -501,14 +502,14 @@ pub fn RealmSceneViewer(
|
|||
prop=prop_signal
|
||||
transform=scene_transform
|
||||
base_prop_size=prop_size
|
||||
z_index=5
|
||||
z_index=Z_LOOSE_PROP
|
||||
/>
|
||||
}
|
||||
}).collect_view()
|
||||
}}
|
||||
</Show>
|
||||
</div>
|
||||
<div class="avatars-container absolute inset-0" style="z-index: 2; pointer-events: none; overflow: visible;">
|
||||
<div class="avatars-container absolute inset-0" style=format!("z-index: {}; pointer-events: none; overflow: visible;", Z_AVATARS_CONTAINER)>
|
||||
<Show when=move || scales_ready.get() fallback=|| ()>
|
||||
{move || {
|
||||
member_keys.get().into_iter().map(|key| {
|
||||
|
|
@ -516,7 +517,7 @@ pub fn RealmSceneViewer(
|
|||
members_by_key.get().get(&key).map(|(_, m)| m.clone()).expect("member key should exist")
|
||||
});
|
||||
let z_index_signal = Signal::derive(move || {
|
||||
members_by_key.get().get(&key).map(|(idx, _)| (*idx as i32) + 10).unwrap_or(10)
|
||||
members_by_key.get().get(&key).map(|(idx, _)| (*idx as i32) + Z_AVATAR_BASE).unwrap_or(Z_AVATAR_BASE)
|
||||
});
|
||||
let z = z_index_signal.get_untracked();
|
||||
// Derive bubble signal for this member
|
||||
|
|
@ -557,7 +558,7 @@ pub fn RealmSceneViewer(
|
|||
member=member_signal
|
||||
transform=scene_transform
|
||||
prop_size=prop_size
|
||||
z_index=5
|
||||
z_index=Z_FADING_AVATAR
|
||||
text_em_size=text_em_size
|
||||
opacity=opacity
|
||||
screen_bounds=screen_bounds
|
||||
|
|
@ -570,7 +571,7 @@ pub fn RealmSceneViewer(
|
|||
</div>
|
||||
<div
|
||||
class="click-overlay absolute inset-0"
|
||||
style="z-index: 5; cursor: pointer;"
|
||||
style=format!("z-index: {}; cursor: pointer;", Z_CLICK_OVERLAY)
|
||||
aria-label=format!("Scene: {}", scene_name)
|
||||
role="img"
|
||||
on:click=move |ev| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue