From 535b14a5867b15dea0e193c94829a0b99a29605c Mon Sep 17 00:00:00 2001 From: Emilia Date: Fri, 29 Dec 2023 18:02:00 -0500 Subject: [PATCH] Space colors evenly, consistently, etc Colors should now: - Not change if new transfers are added - Be evenly spaced throughout the palette - Be persistent across refreshes --- src/components/plates/destination_plate.rs | 10 +++++++++- src/components/plates/source_plate.rs | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/components/plates/destination_plate.rs b/src/components/plates/destination_plate.rs index e124b94..39acf1f 100644 --- a/src/components/plates/destination_plate.rs +++ b/src/components/plates/destination_plate.rs @@ -41,6 +41,14 @@ pub fn DestinationPlate(props: &DestinationPlateProps) -> Html { } let destination_wells = ct_state.transfer.transfer_region.get_destination_wells(); + let ordered_ids: Vec = { + let mut ids: Vec = main_state.transfers.clone().iter() + .map(|x| x.id) + .collect(); + ids.sort_unstable(); + ids + }; + let mouse_callback = { let m_start_handle = m_start_handle.clone(); let m_end_handle = m_end_handle.clone(); @@ -118,7 +126,7 @@ pub fn DestinationPlate(props: &DestinationPlateProps) -> Html { in_transfer={destination_wells.contains(&(i,j))} color={transfer_map.get(&(i,j)) .and_then(|t| t.last()) - .map(|t| PALETTE.get_uuid(t.get_uuid())) + .map(|t| PALETTE.get_ordered(t.get_uuid(), &ordered_ids)) } cell_height={props.cell_height} title={transfer_map.get(&(i,j)).map(|transfers| format!("Used by: {}", transfers.iter().map(|t| t.name.clone()) diff --git a/src/components/plates/source_plate.rs b/src/components/plates/source_plate.rs index 2c475a6..f533547 100644 --- a/src/components/plates/source_plate.rs +++ b/src/components/plates/source_plate.rs @@ -61,6 +61,14 @@ pub fn SourcePlate(props: &SourcePlateProps) -> Html { let source_wells = ct_state.transfer.transfer_region.get_source_wells(); + let ordered_ids: Vec = { + let mut ids: Vec = main_state.transfers.clone().iter() + .map(|x| x.id) + .collect(); + ids.sort_unstable(); + ids + }; + let mouse_callback = { let m_start_handle = m_start_handle.clone(); let m_end_handle = m_end_handle.clone(); @@ -122,7 +130,7 @@ pub fn SourcePlate(props: &SourcePlateProps) -> Html { in_transfer={source_wells.contains(&(i,j))} color={transfer_map.get(&(i,j)) .and_then(|t| t.last()) - .map(|t| PALETTE.get_uuid(t.get_uuid())) + .map(|t| PALETTE.get_ordered(t.get_uuid(), &ordered_ids)) } cell_height={props.cell_height} title={transfer_map.get(&(i,j)).map(|transfers| format!("Used by: {}", transfers.iter().map(|t| t.name.clone())