-
Notifications
You must be signed in to change notification settings - Fork 180
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
feat(app): Wire up lpc redesign #17850
Conversation
…e cloned offsets stale
… legacy labware offsets
This reverts commit 0959769.
…about confirming offsets
…lizing the sorting logic
…ource if there's no conflict
…nd text doesn't overflow
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Love the implementation but can't we get the database ids of offsets from run record?
Yea we certainly can! EDIT: Woops, chatting with @SyntaxColoring , it seems like we can't. These are different ids. |
…17832) ## Overview The client-side half of EXEC-1342. ## Test Plan and Hands on Testing * [x] I guess at this point we can turn on the feature flag and try this out by entering LPC on one client and changing offsets on another? * Tested with a merge of this PR, #17853, #17817, and #17850. ## Changelog The client was polling `POST /labwareOffsets/searches`. This switches it to only happen when the client receives a notification from the server that offsets have changed, with a polling fallback. I'm entirely cargo-culting the patterns from the existing `useNotify___()` hooks. ## Risk assessment Medium. I don't think we have a good way to integration-test this kind of thing, so there are risks of things like missed updates, or inadvertent polling.
Closes EXEC-1297, EXEC-1307, and EXEC-1306.
Partially closes EXEC-1354
Overview
This PR wires up the redesigned LPC flows to the app, both the desktop and ODD, removing the FF. There may or may not be several bug fixes included given time constraints. Given the size of this PR (sorry), I think it's best to view it commit by commit. Explanations provided for each commit. See Review Requests.
Screen.Recording.2025-03-21.at.1.12.02.PM.mov
Screen.Recording.2025-03-21.at.1.18.56.PM.mov
3e85337 - don't force users to LPC if they have all LS offsets already. I start the work here, and this is fixed when I QA'd it in later commits.
06324f6 - Ignore this commit. The implementation is bad, and I greatly simplify this later. I do make it worse first, though in some follow up commits.
03707c7 - Add selectors that are required for some run setup copy/behavior. These are expanded and fixed in later commits.
0b2dd17 - Quick type fix.
7267cce - Begins adding the scaffolding for applying offsets. I decide to include some fixes for 06324f6 here too for some reason, but it's still broken at this point.
5eb830e - Ignore, after clarifying with Design, we disable the "LPC" button entirely if we don't need to LPC.
7288573 - More selectors for run setup.
04ef356 - If a user decides they want to use the cloned run offsets instead of the database offsets, inject those into the store.
ce9d8ad - Make the LabwareOffsetsTable a shared app component. Just the ODD here, desktop later.
16d227c - Implements the database offsets in quick transfer. No more run scraping.
b83257d - The big one. Removes the feature flag and ensures we only scrape offsets for the OT-2.
a0efcac - test fixing/linting
d002c6b - Greatly improve the component structure of the labware offsets conflict modal, and fixes some ODD copy issues in the modal.
2427475 - Refactor QT a bit. We don't actually need to inject offsets at all, since the user has to confirm offsets, anyway.
7d198f6 - Correct some of the selector counting logic utilized by copy/render behavior.
d37bd91 - Fixes the OT-2 not launching LPC and run setup not popping the setup confirmation modal for the OT-2 if offsets weren't confirmed.
50adb3e - Automatically apply offsets if there's no LPC-able labware.
e7c9fbe - There isn't any Figma-specced loading state in the Designs to handle all the network requests we're doing, but after talking to Design, we'll just show the skeleton on run setup for the ODD until those requests have settled.
6fc3ed7 - Ok, now the offsets timestamp logic is functional and easier to follow. It still gets refined later.
bd73279 - We only want to show one entry for a labwareUri, locationSequence combo, not as many as there are labware.
c372509 - This isn't specced in Figma, but the historical run log needed updating. We now show offsets that have 0,0,0 vector values too, since setting those offsets is a deliberate choice.
caf67dd - Clean up the dispatch logic for the deck config.
0f5ed78 - Woops, looking at a historical run could pop the offsets conflict modal.
126f53a - Fixes some odd bugs by making the code a bit DRYer.
742044f - Added copy support for passing in modules to the old-style of display text.
b243c2c - Fixes a logic issue.
04152e6 - Dispatching the conflict timestamp can update the store's conflict resolution (potentially) given the outcome.
592637d - When users migrate to 8.4, we don't want to make them LPC for default offsets if they have all the location offsets already.
b52ba45 - See ODD video. The launch LPC button shouldn't clip the offsets table, and the vector labels should never overflow.
Test Plan and Hands on Testing
Ran a bunch of different protocols, covering the following test cases:
I do need to add extensive testing, and it's on my TODO list after a few higher priority tickets, see EXEC-1352.
Changelog
Review requests
Risk assessment
11/10. Everyone gets to enjoy the new LPC now!