Commit Graph
75 Commits
Author SHA1 Message Date
Evan Simkowitz 07a843f7bd render resize handles first so they can't interfere with a magnified block 2024-08-17 00:02:08 -07:00
Evan Simkowitz 7a1a3a2bea fix addl props nullref 2024-08-16 17:59:53 -07:00
Evan Simkowitz d73bcb82ea fix last-magnified node logic 2024-08-16 12:21:44 -07:00
Evan SimkowitzandGitHub b0a09db4d1 Fix Cmd:W to delete block (#238) 2024-08-16 11:40:10 -07:00
Evan Simkowitz 42cc9f5d18 disable drag when there's a magnified node 2024-08-15 15:03:15 -07:00
Evan SimkowitzandGitHub c187059c8f Fix flicker when dragging a node through a node gap (#231)
This simplifies the rect calculations by making the gap between pixels
into a padding applied directly to the leaf nodes. This means the gaps
won't be present in the overlay layer, so when dragging a node around it
is always over an OverlayNode and the pendingAction won't be unset.

Also simplifies onDrop handling
2024-08-15 14:53:13 -07:00
Evan SimkowitzandGitHub 9fa11ff838 Fix tab switching issues with layout model (#230) 2024-08-15 13:45:45 -07:00
Evan SimkowitzandGitHub fc7bb7eaca Clean up and document the layout model code (#229) 2024-08-15 12:24:06 -07:00
Evan SimkowitzandGitHub b5c6c1a937 Create reduced motIon setting (#226)
Adds a new setting that emulates the prefers-reduced-motion media query, allowing users to disable Wave animations without affecting other apps on their system. It also honors the prefers-reduced-motion query in case a system-level configuration is present.
2024-08-14 21:47:09 -07:00
Evan Simkowitz 3c9b3423a9 update type defs 2024-08-14 19:43:25 -07:00
Evan Simkowitz 15cd0b2477 fix resize handle drag offset 2024-08-14 19:37:47 -07:00
Evan Simkowitz a95f60469a rename vars 2024-08-14 19:27:32 -07:00
Evan Simkowitz fb1c3ac85f update var name 2024-08-14 19:09:22 -07:00
Evan Simkowitz 8262f977f0 remove unused layout tree reducer 2024-08-14 18:44:32 -07:00
Evan SimkowitzandGitHub e85b0d205e New layout model (#210)
This PR is a large refactoring of the layout code to move as much of the
layout state logic as possible into a unified model class, with atoms
and derived atoms to notify the display logic of changes. It also fixes
some latent bugs in the node resize code, significantly speeds up
response times for resizing and dragging, and sets us up to fully
replace the React-DnD library in the future.
2024-08-14 18:40:41 -07:00
Evan SimkowitzandGitHub 9e1460b9e1 Remove UUID library in favor of Crypto (#221)
This PR swaps usage of the `uuid` library for the built-in
`crypto.randomUUID` function, which is available in both NodeJS and the
browser. The built-in function is around 12x faster than the `uuid`
library. The strings produced by the built-in function are fully
compatible with the UUIDv4 standard, so it's an easy switch.
2024-08-12 21:20:13 -07:00
Evan SimkowitzandGitHub e29cb2debe Make magnify icon always visible, transition from magnify to minimize (#197)
I'm updating the magnify button to be always visible and animate a
transition between being a "Magnify" button and a "Minimize" button.

This also cleans up some text shrinking behavior in the block frame
header so the end icons are always visible.

Also fixes some height discrepancies in the block frame header.

Also implements a `prefers-reduced-motion` query for the tilelayout and
block frame to ensure transitions are not set if the user does not want
them.
2024-08-05 16:13:26 -07:00
Evan SimkowitzandGitHub 74e86ef0cc Bootstrap layout on first launch (#186) 2024-07-31 21:27:46 -07:00
Evan SimkowitzandGitHub c91cae9463 Fix some more improper border radii (#184) 2024-07-31 13:37:20 -07:00
Evan SimkowitzandGitHub 2157df85de Disable block pointer events during layout drag (#183)
This will ensure that the webview cannot capture the pointer events and
disrupt the drag functionality.

This also fixes an issue where greedy and imprecise bounds calculations
could result in thrashing of the layoutState.pendingAction field, which
could cause the placeholder to flicker.

This also fixes issues where some React Effects that were supposed to be
debounced or throttled were being invoked too much. This is because
useEffect regenerates the callback when it is run, resulting in the
debounce or throttle never taking effect. Moving the throttled or
debounced logic to a separate callback solves this.
2024-07-31 12:49:38 -07:00
Evan SimkowitzandGitHub 9afb5a7bc1 Update setTransform calculation to ensure blocks don't overflow display container (#181) 2024-07-30 19:21:06 -07:00
Evan Simkowitz 5a6be9bc43 Fix resize ns margin 2024-07-30 16:05:30 -04:00
9233b3dbd7 modals component and model and TOS modal (#164)
Co-authored-by: Sylvia Crowe <software@oneirocosm.com>
Co-authored-by: sawka <mike.sawka@gmail.com>
2024-07-30 11:44:19 -07:00
Evan SimkowitzandGitHub f3f272a47b Add action for magnifying a block (#172)
Adds the implementation for the "Magnify Block" context menu item. This
will pop a block out of the layout and bring it to the foreground.

This also cleans up some block styling to make radii more consistent.

<img width="814" alt="image"
src="https://github.com/user-attachments/assets/c81521e1-c91f-4bb5-9eec-ff0eda178268">
2024-07-30 10:59:53 -07:00
Evan SimkowitzandGitHub 9fb2e58b54 rename faraday to layout (#147) 2024-07-23 13:50:23 -07:00