Commit Graph

88 Commits

Author SHA1 Message Date
Evan Simkowitz
7a61f25331
Auditing async usage in frontend code (#1402)
I found a lot of places where asyncs weren't being properly wrapped or
awaited
2024-12-05 18:09:54 -08:00
Evan Simkowitz
d8edea9fbc
Oops i actually made the tabs wrong (#1384)
forgot to update .editorconfig to include scss...
2024-12-04 13:49:14 -08:00
Evan Simkowitz
0145e8fe99
Fix SCSS formatting after migration (#1382)
The migration tool we used didn't take into account our formatting
standards so I'm bulk-formatting the SCSS files to bring them back up to
our standards. Basically this just changes the tab size for all the
files.
2024-12-04 12:49:44 -08:00
Evan Simkowitz
82f53dc1fb
Workspaces are back! (#1282) 2024-12-02 10:56:56 -08:00
Evan Simkowitz
2e91ee843c
Switch from Less to Scss (#1335)
Less hasn't received an update in over a year and the parser is missing
some modern syntax like relative colors so this switches us to scss
2024-11-21 16:05:04 -08:00
Evan Simkowitz
416ba8d5da
Add settings to control the size of the magnified/ephemeral nodes and their blur (#1319) 2024-11-18 14:41:09 -08:00
Evan Simkowitz
48e3003f98
Fix magnified node not showing on startup (#1305) 2024-11-15 15:56:11 -08:00
Evan Simkowitz
eb00716e00
Don't drag for ephemeral blocks (#1288) 2024-11-14 10:16:08 -08:00
Evan Simkowitz
14249b33b2
Remove the debounce when setting the backdrop for the ephemeral nodes (#1280)
I added this debounce to delay the blurring of the background nodes when
a node was magnified to account for the animation, but it looks weird
for the ephemeral nodes since there's no animation when first showing
them. When we work on node creation animations maybe I'll add back this
delay
2024-11-13 18:49:03 -08:00
Evan Simkowitz
db556f18b8
Cleanup unnecessary log and unused variable from last PR (#1279) 2024-11-13 18:37:43 -08:00
Evan Simkowitz
3fcf209b52
Add ephemeral block support (#1275)
Ephemeral blocks can now be added to the LayoutModel for a tab. Only one
ephemeral block can exist at a time. It is placed above all other
blocks, including the magnified blocks.

Updates how magnified and ephemeral blocks overlay the other blocks.
Now, there's a blurred backdrop behind them that will obscure the other
blocks. As a result of this, the overlayed blocks are now translucent.
2024-11-13 18:00:13 -08:00
Mike Sawka
c1c90bb4f8
browser view (#1005) 2024-10-17 14:34:02 -07:00
Evan Simkowitz
a109ccfec8
Fix new tab bug that would remove terminal block (#1006) 2024-10-10 13:33:48 -07:00
Evan Simkowitz
7c2268fb81
fix for new tab thing (#792) 2024-09-19 16:08:59 -07:00
Sylvia Crowe
466a659ef2 fix: remove debounce on setTreeStateAtomUpdated 2024-09-19 16:02:59 -07:00
Sylvia Crowe
5d62613fb8 fix: add async explicitly for debounce output 2024-09-19 15:59:26 -07:00
Evan Simkowitz
7126c47ecc
Fix missing new tab layouts (#402) 2024-09-19 12:59:09 -07:00
Evan Simkowitz
839889ba63
missed another break 2024-09-19 12:23:06 -07:00
Evan Simkowitz
f14b4c6f11
missed a break 2024-09-19 12:22:23 -07:00
Evan Simkowitz
fd6e92ee2c
Clear previous layout when applying portable layout to tab (#382) 2024-09-16 17:26:37 -07:00
Evan Simkowitz
f6362a3a15
Upgrade Storybook and disable TileLayout story for now 2024-09-16 13:16:04 -07:00
Evan Simkowitz
47995c12ad
disable TileLayout story for now 2024-09-16 13:14:06 -07:00
Evan Simkowitz
8f0cd5adcf
fix latent regression from my last pr 2024-09-10 22:50:28 -07:00
Evan Simkowitz
9b12aa9882
Fix bug in TileLayout where computeMoveNode had stale node data (#361)
This was hard to debug. It manifested in nodes that had been collapsed
into their parent. When a node was dragged over the recently-collapsed
node, the placeholder would show the action as if the flex direction was
reversed. It turns out useDrag has trouble tracking changes to the
LayoutNode objects. For now, I am just finding the nodes again in the
computeMoveNode function. Later when I redo the drag system, I will fix
this better.
2024-09-10 17:23:28 -07:00
Evan Simkowitz
afe73c3e85
Make the debounced node inner rect hook more reliable (#350)
Rather than try to track the transition state, which was proving
unreliable, I am just directly tracking the node state and determining
whether to debounce the inner rect based on whether the user has the
prefers-reduced-motion setting or query, whether the node is resizing,
and whether it's currently magnified. I'm then using the actual
animation time setting to determine how long to debounce.
2024-09-06 16:20:27 -07:00
Evan Simkowitz
9ef6745d66
fix regression in nodeModel.innerRect 2024-09-05 18:07:55 -07:00
Evan Simkowitz
b796ec9729
reorganize 2024-09-04 23:44:23 -07:00
Evan Simkowitz
4e49549cac
fix padding during magnified 2024-09-04 23:43:26 -07:00
Evan Simkowitz
74c8044c73
Add gap size setting (#325)
Adds a new setting for the gap size between tiles in a layout. Also
updates the resize handle calculations so they are dynamically generated
based on the gap size. Also updates the styling for the resize handles
to be more robust.

This also updates the default gap size to 3px.

This also slims out the Block Frame padding so it is just enough that
the blocks don't overlap when there's no gap.
2024-09-04 22:07:47 -07:00
Evan Simkowitz
825801d98e
add back border radius 2024-09-04 15:37:16 -07:00
Evan Simkowitz
e0e4256739
remove border radius when tile is not magnified 2024-09-04 15:34:53 -07:00
Evan Simkowitz
0623218373
make border radius conditional in tilelayout 2024-09-04 15:34:13 -07:00
Evan Simkowitz
9cf87723dc
fix tile node border radius 2024-09-04 15:32:45 -07:00
Evan Simkowitz
16e1b7f65c
Unmagnify the final leaf in a layout (#307)
This handles an edge case where a user deletes all unmagnified nodes,
leaving a final node that is still magnified. Because we ignore
magnify/unmagnify operations when there's only one leaf remaining, this
would result in the last node being stuck magnified until a new node is
added.

Also fixes a bug where the layout would not always update when a new
block was added.
2024-09-03 14:26:29 -07:00
Evan Simkowitz
383a71fc25
Fix infinite loop in layoutAtom, improve iconbutton disable code (#306)
Fixes an infinite loop in the layoutModel atom synchronization that
would cause the atom to update indefinitely when the root node is
deleted.

Also adds a dedicated `disabled` flag for the IconButton decl so we can
disable the onClick handler when the button is disabled.

Also updates the Magnify toggle button to use this new flag, so that
when there's only one leaf in a layout, the magnify button is disabed.
2024-09-03 11:24:45 -07:00
sawka
70ef76be62 implement cmd:i, hook up telemetry switch, fix some settings types 2024-09-02 20:21:35 -07:00
Evan Simkowitz
aab487541b
Resolve BlockNum in WSH commands (#301) 2024-08-30 20:20:25 -07:00
Evan Simkowitz
cb664cff41
ignore prefers-reduced-motion for resize handle line delay 2024-08-30 12:52:02 -07:00
Evan Simkowitz
86d6c5cd60
set prefers-reduced-motion as a global override 2024-08-30 12:48:06 -07:00
Evan Simkowitz
3f4026a6b7
fix resize handle transition timing 2024-08-30 12:45:12 -07:00
Evan Simkowitz
e9b78c354f
Resize handle improvements (#299)
Adds a delay to the resize handle line first showing so it doesn't flicker when the mouse briefly passes over it. Also removes an unnecessary findNode call that was happening on every move. Also adjusts the pointer offset based on the display container bounding rect.
2024-08-30 12:31:03 -07:00
Evan Simkowitz
87d69eb5bc
fix treereducer getting out of sync 2024-08-29 12:38:13 -07:00
Evan Simkowitz
c9a1e9afe3
fix drag overlay losing rect changes 2024-08-28 16:24:25 -07:00
Evan Simkowitz
59979b13e7
use linear timing function for layout transitions 2024-08-28 14:25:47 -07:00
Evan Simkowitz
099c196cae
Use transition events to better-coordinate debouncing of NodeModel innerRect (#288)
Rather than using a timeout to debounce changes to the
NodeModel.innerRect, I'll use a transition event on the display
container. This way, if the user disables transitions using the reduced
motion setting, changes to the innerRect value will not be debounced.
2024-08-28 13:28:49 -07:00
Evan Simkowitz
fb65ec1e23
Explicitly set focus on insert (#285)
Adds a flag to the insert layout action to explicitly set the focus of a
newly inserted node. This also adds a flag in the starter layout to
focus on the terminal block.
2024-08-27 23:16:07 -07:00
Evan Simkowitz
c9c555452a
Establish wlayout for coordinating backend layout actions (#282) 2024-08-27 18:38:57 -07:00
Evan Simkowitz
7d90a3912b
fix nullref in layoutNode.findNode 2024-08-27 13:48:53 -07:00
sawka
730c0b1eea fix nullptr for non-focused node 2024-08-27 13:45:05 -07:00
Evan Simkowitz
c892c39a73
Fix block content sizing (#280)
Make the block content sizing update once when its node moves or becomes
magnified. By manually updating this inner sizing rather than letting
the block flow in the DOM, the animations of the block frames are much
smoother.

This also fixes an issue where two scrollbars were being rendered for
the Directory Preview widget.

This also sets zero padding on nodes when there's only a single node
being rendered.
2024-08-27 13:41:36 -07:00