psychedelicious
852badc90b
feat(ui): standardize auto layout structure
2025-06-26 20:00:34 +10:00
psychedelicious
241844bdef
refactor(ui): rip out image viewer as modal
2025-06-26 20:00:34 +10:00
psychedelicious
48e2e7e4a1
refactor(ui): ref images (WIP)
2025-06-26 19:59:04 +10:00
psychedelicious
5a2f5c105d
refactor(ui): refImage.ipAdapter -> refImage.config
2025-06-26 19:57:15 +10:00
psychedelicious
aa93e95a94
feat(ui): split out ref images into own slice (WIP)
2025-06-26 19:55:21 +10:00
psychedelicious
c7ed351bab
refactor(ui): async modal pattern; use for deleting images
...
This was needed for a canvas flow change which is currently paused, but the new API is much much nicer to use, so I am keeping it.
2025-06-26 19:51:37 +10:00
psychedelicious
1446d3490b
fix(ui): merge refs when forwardingin DndImage
2025-06-26 19:50:35 +10:00
psychedelicious
7308428f32
wip
2025-06-26 19:50:34 +10:00
psychedelicious
31a96d2945
feat(ui): use resize on uplaod functionality when creating new canvas from image
2025-05-29 13:49:07 +10:00
psychedelicious
7b84f8c5e8
fix(ui): do not disable image context canvas actions based on selected base model
...
These actions should be accessible at any time.
2025-04-10 10:50:13 +10:00
psychedelicious
2b2f64b232
refactor(ui): simplify useIsEntityTypeEnabled
2025-04-10 10:50:13 +10:00
Mary Hipp
8837932bad
create hook for managing entity type enabledness for given base model and update usage
2025-04-10 10:50:13 +10:00
psychedelicious
a23d90187b
feat(ui): allow send-image-to-canvas to work when canvas is uninitialized
...
Add `useCanvasIsBusySafe()` hook. This is like `useCanvasIsBusy()`, but when the canvas is not initialized, it gracefully falls back to false instead of raising.
Because app tabs are lazy-loaded, the canvas is not initialized until the user visits that tab. If the page loads up on the workflows tab, the canvas will be uninitialized until the user clicks on it.
This graceful fallback behaviour allows actions like sending an image to canvas to work even when the canvas is not yet initialized. These actions are exposed in the image context menu, and previously were hidden when the canvas was not initialized. We can now show these actions and use them even when the canvas is uninitialized.
- Add `useCanvasIsBusySafe()` hook
- Use the new hook in the image context menu for send to canvas actions
- Do not use `<CanvasManagerProviderGate />` in the image context menu (this was hiding the actions when canvas was uninitialized)
2025-04-10 06:44:44 +10:00
psychedelicious
73330a1308
chore(ui): lint
2025-03-13 07:10:59 +11:00
psychedelicious
83bfbdcad4
feat(ui): more workflow loading standardization
...
There is now a single entrypoint for loading a workflow - `useLoadWorkflowWithDialog`.
The hook:
Handles loading workflows from various sources. If there are unsaved changes, the user will be prompted to confirm before loading the workflow.
It returns a function that:
Loads a workflow from various sources. If there are unsaved changes, the user will be prompted to confirm before loading the workflow. The workflow will be loaded immediately if there are no unsaved changes. On success, error or completion, the corresponding callback will be called.
WHEW
2025-03-13 07:10:59 +11:00
psychedelicious
a29fb18c0b
feat(ui): standardize and clean up workflow loading hooks and logic
2025-03-13 07:10:59 +11:00
Mary Hipp
b1c9f59c30
add actions for copying image and opening image in new tab
2025-02-25 11:55:36 -05:00
psychedelicious
e7aafdfdbf
feat(ui): migrate all clipboard stuff to useClipboard
2025-02-07 11:08:03 +11:00
Mary Hipp
ca571cd7a9
swap global and regional
2024-12-12 15:53:18 -05:00
psychedelicious
62c024e725
feat(ui): add gallery image ctx menu items to create ref image from image
...
Appears these actions disappeared at some point. Restoring them.
2024-12-02 07:52:58 -05:00
psychedelicious
7baa6b3c09
feat(ui): split up new from image into submenus
...
- `New Canvas from Image` -> `As Raster Layer`, `As Raster Layer (Resize)`, `As Control Layer`, `As Control Layer (Resize)`
- `New Layer from Image` -> (each layer type)
2024-11-19 10:34:00 -08:00
psychedelicious
53d482bade
feat(ui): add image ctx menu new canvas without resize option
2024-11-19 10:34:00 -08:00
Mary Hipp
13cb5f0ba2
Merge remote-tracking branch 'origin/main' into ryan/sd3-image-to-image
2024-11-08 20:29:56 -05:00
Mary Hipp
dff6570078
(ui) SD3 support in linear UI
2024-11-08 13:42:57 -05:00
psychedelicious
0c9434c464
chore(ui): lint
2024-11-08 07:39:09 +11:00
psychedelicious
5361b6e014
refactor(ui): image actions sep of concerns
2024-11-08 07:39:09 +11:00
psychedelicious
ff346172af
feat(ui): use new image actions system for image menu
2024-11-08 07:39:09 +11:00
psychedelicious
63126950bc
feat(ui): migrate to pragmatic-drag-and-drop (wip)
2024-11-08 07:39:09 +11:00
psychedelicious
47f0781822
fix(ui): add missing translations
...
Closes #7229
2024-11-01 07:40:52 +11:00
psychedelicious
db1c5a94f7
feat(ui): image ctx -> New from Image -> Canvas as Raster/Control Layer
2024-10-25 22:27:00 -04:00
psychedelicious
ffff2d6dbb
feat(ui): add New from Image submenu for image ctx menu
2024-10-25 07:42:46 +11:00
psychedelicious
61ac50c00d
feat(ui): use sub-menu for image metadata recall
2024-10-24 08:39:29 -04:00
psychedelicious
bb59ad438a
docs(ui): add comments to ImageContextMenu
2024-10-11 09:36:23 -04:00
psychedelicious
e38f5b1576
fix(ui): safari doesn't have find on iterators
2024-10-11 09:36:23 -04:00
psychedelicious
947cd4694b
perf(ui): use single event for all image context menus
...
Image elements register their target ref in a map, which is used to look up the image that was clicked on. Substantial perf improvement.
2024-10-11 09:36:23 -04:00
psychedelicious
bc8ad9ccbf
perf(ui): remove another extraneous useCallback
2024-10-11 09:36:23 -04:00
psychedelicious
9868e23235
feat(ui): use singleton context menu
...
This improves render perf for the image component by 10-20%.
2024-10-11 09:36:23 -04:00
psychedelicious
4aa20a95b2
feat(ui): consolidate img2img canvas flow
...
Make the `New Canvas From Image` button do what the `New Img2Img From Image` does.
2024-10-11 09:03:44 +11:00
psychedelicious
1f5d744d01
fix(ui): disable canvas-related image context menu items when canvas is busy
2024-10-10 07:43:46 -04:00
psychedelicious
b36c6af0ae
feat(ui): add new img2img canvas from image functionality
...
This replicates the img2img flow:
- Reset the canvas
- Resize the bbox to the image's aspect ratio at the optimal size for the selected model
- Add the image as a raster layer
- Resizes the layer to fit the bbox using the 'fill' strategy
After this completes, the user can immediately click Invoke and it will do img2img.
2024-10-10 07:43:46 -04:00
psychedelicious
9e6fb3bd3f
feat(ui): add hooks for new layer/canvas from image & use them
2024-10-10 07:43:46 -04:00
psychedelicious
5f416ee4fa
feat(ui): add IconMenuItem component
2024-10-09 23:13:08 +11:00
psychedelicious
eee4175e4d
Revert "fix(ui): Apple Pencil requires onPointerUp instead of onClick"
...
This reverts commit 2a90f4f59e .
2024-10-07 10:05:20 +11:00
psychedelicious
a303777777
fix(ui): image context menu buttons don't close menu
...
Need to render as a `MenuItem` to trigger the close behaviour
2024-10-04 21:33:01 -04:00
psychedelicious
2dc069d759
chore(ui): lint
2024-10-04 07:44:40 -04:00
psychedelicious
2a90f4f59e
fix(ui): Apple Pencil requires onPointerUp instead of onClick
...
With `onClick`, elements w/ a tooltip require a double-tap.
2024-10-04 07:44:40 -04:00
Josh Corbett
9b90834248
feat(context menu): ✨ condense top row of image context menu
2024-10-01 22:06:42 -04:00
psychedelicious
7167a5d3f4
feat(ui): make image hotkeys global
2024-10-01 06:05:16 +10:00
psychedelicious
34eb807770
feat(ui): add "new canvas from image" to image context menu
...
- Renamed "Send to Canvas" -> "New Layer from Image"
- Added "New Canvas from Image"
This clarifies the purpose of the menu items and gives tablet users a way to easily add images tot he canvas.
2024-09-19 23:36:22 +10:00
psychedelicious
3a42285a3f
feat(ui): gallery image hover button to open in viewer
2024-09-16 15:10:17 +03:00