Bruno Quaresma
cbfe975cc8
refactor: show unhealthy status on workspace status indicator ( #17956 )
...
Instead of showing a "yellow question icon" on the side of the status,
to let the user aware of unhealthy agents, we could make it yellow and
use a tooltip.
Before:
<img width="1512" alt="Screenshot 2025-05-20 at 18 13 15"
src="https://github.com/user-attachments/assets/afee470e-9dd4-4c32-b2bc-b9f66eac60fa "
/>
After:
<img width="1512" alt="Screenshot 2025-05-20 at 18 13 26"
src="https://github.com/user-attachments/assets/5769828b-f23c-45a5-8017-c4a88f085d0f "
/>
2025-05-21 15:57:32 -03:00
Jaayden Halko
3a6d5f5bba
fix: update textarea to fit content height and set a max height ( #17946 )
2025-05-21 10:56:01 -04:00
Bruno Quaresma
36224f263f
chore: replace MUI icons with Lucide icons - 17 ( #17957 )
...
1. ExpandMoreOutlined → ChevronDownIcon
2. Error/ErrorIcon → CircleAlertIcon
3. CheckCircle → CircleCheckIcon
4. Warning → TriangleAlertIcon
2025-05-20 22:24:17 -03:00
Jaayden Halko
dc21016151
fix: get presets working correctly with dynamic params ( #17923 )
...
This adds a few fixes to get presets working correctly with dynamic
params
1. Changes to preset params need to be rendered and displayed correctly
2. Changes to preset params need to be sent to the websocket
3. Changes to preset params need to be marked as touched so they won't
be automatically changed later because of dynamic defaults. Dynamic
defaults means any default parameter value can be changed by the
websocket response unless edited by the user, set by autofill or set by
a preset.
2025-05-19 18:20:40 -04:00
Jaayden Halko
d6cb9b49b7
feat: setup url autofill for dynamic parameters ( #17739 )
...
resolves coder/preview#80
Parameter autofill allows setting parameters from the url using the
format param.[param name]=["purple","green"]
Example:
http://localhost:8080/templates/coder/scratch/workspace?param.list=%5b%22purple%22%2c%22green%22%5d%0a
The goal is to maintain feature parity of for autofill with dynamic
parameters.
Note: user history autofill is no longer being used and is being
removed.
2025-05-16 18:05:33 -04:00
Bruno Quaresma
3011eca0c5
chore: replace MUI icons with Lucide icons - 16 ( #17862 )
...
Close -> XIcon
WarningOutlined -> TriangleAlertIcon
FileCopyOutlined -> CopyIcon
KeyboardArrowRight -> ChevronRightIcon
Add -> PlusIcon
Send -> SendIcon
ChevronRight -> ChevronRightIcon
MoreHorizOutlined -> EllipsisIcon
2025-05-15 15:42:09 -03:00
Bruno Quaresma
952c254046
fix: fix duplicated agent logs ( #17806 )
...
Fix https://github.com/coder/coder/issues/16355
2025-05-15 15:21:33 -03:00
Bruno Quaresma
6ff6e95417
chore: replace MUI icons with Lucide icons - 13 ( #17831 )
...
OpenInNew -> ExternalLinkIcon
InfoOutlined -> InfoIcon
CloudDownload -> CloudDownloadIcon
CloudUpload -> CloudUploadIcon
Compare -> GitCompareArrowsIcon
SettingsEthernet -> GaugeIcon
WebAsset -> AppWindowIcon
2025-05-15 11:43:35 -03:00
Bruno Quaresma
fcbdd1a28e
refactor: replace badge by status indicator ( #17811 )
...
**Why?**
In the workspaces page, it is using the status indicator, and not the
badge anymore, so to keep the UI consistent, I'm replacing the badge by
the indicator in the workspace page too.
**Before:**
<img width="672" alt="Screenshot 2025-05-13 at 19 14 17"
src="https://github.com/user-attachments/assets/0e8ea4bd-68d1-4d27-b81b-f79f15cabb2c "
/>
**After:**
<img width="672" alt="Screenshot 2025-05-13 at 19 14 21"
src="https://github.com/user-attachments/assets/45719262-011e-4fc8-9ebe-fe9e33d9d572 "
/>
2025-05-14 09:11:25 -03:00
Bruno Quaresma
67e40244a4
feat: add extra workspace actions in the workspaces table ( #17775 )
...
**Demo:**
<img width="1624" alt="Screenshot 2025-05-12 at 16 53 36"
src="https://github.com/user-attachments/assets/7f125b31-5ce8-4c1f-8e26-c3136346cae3 "
/>
2025-05-13 18:53:43 -03:00
Bruno Quaresma
15bd7a3add
chore: replace MUI icons with Lucide icons - 5 ( #17750 )
...
Replacements:
MUI | Lucide
OpenInNewOutlined | ExternalLinkIcon
HelpOutline | CircleHelpIcon
ErrorOutline | CircleAlertIcon
2025-05-12 13:36:51 -03:00
Bruno Quaresma
aa4b764025
chore: replace MUI icons - 3 ( #17733 )
...
1. Replaced TaskAlt with CircleCheckBigIcon in:
- Paywall.tsx
- PopoverPaywall.tsx
2. Replaced InfoOutlined with InfoIcon in:
- ChangeVersionDialog.tsx
- WorkspaceNotifications.tsx
- Pill.stories.tsx
3. Replaced ErrorOutline/ErrorOutlineIcon with CircleAlertIcon in:
- workspace.tsx
- WorkspaceStatusBadge.tsx
- AppLink.tsx
2025-05-09 15:09:03 -03:00
Bruno Quaresma
b0a4ef01a8
chore: replace MUI icons - 2 ( #17732 )
...
Replace icons:
Check | CheckIcon
KeyboardArrowDown | ChevronDownIcon
KeyboardArrowUp | ChevronUpIcon
2025-05-09 14:44:10 -03:00
Bruno Quaresma
0b8fd7e403
chore: fix :first-child warning ( #17727 )
...
Fix the following warning:
```
The pseudo class ":first-child" is potentially unsafe when doing server-side rendering.
```
2025-05-09 11:11:00 -03:00
Bruno Quaresma
f897981e78
chore: extract app access logic for reuse ( #17724 )
...
We are starting to add app links in many places in the UI, and to make
it consistent, this PR extracts the most core logic into the
modules/apps for reuse.
Related to https://github.com/coder/coder/issues/17311
2025-05-09 10:41:52 -03:00
Jaayden Halko
d93a9cfde2
feat: add TagInput component for dynamic parameters ( #17719 )
...
resolves coder/preview#50
This uses the existing MultiTextField component as the tag-select
component for Dynamic parameters.
The intention is not to completely re-write the MultiTextField but to
make some design improvements to match the updated design patterns. This
should still work with the existing non-experimental
CreateWorkspacePage.
Before
<img width="556" alt="Screenshot 2025-05-08 at 12 58 31"
src="https://github.com/user-attachments/assets/9bf5bbf8-e26d-4523-8b5f-e4234e83d192 "
/>
After
<img width="548" alt="Screenshot 2025-05-08 at 12 43 28"
src="https://github.com/user-attachments/assets/9fa90795-b2a9-4c07-b90e-938219202799 "
/>
2025-05-08 12:59:33 -04:00
Jaayden Halko
0b141c47cb
chore: add DynamicParameter stories ( #17710 )
...
resolves coder/preview#112
- Add stories for DynamicParameter component
- fix bug with displaying immutable badge and required asterisk
2025-05-08 10:12:05 -04:00
Bruno Quaresma
4341403346
chore: simplify workspaces data fetching ( #17703 )
...
We've been using an abstraction that was not necessary to fetch
workspaces data. I also took sometime to use the new useWorkspaceUpdate
hook in the update workspace tooltip that was missing some important
steps like confirmation.
2025-05-08 09:42:39 -03:00
Jaayden Halko
c66e80e862
fix: extract checkbox label from dynamic parameter styling prop ( #17651 )
...
resolves #17474
A label will only be shown next to the checkbox If there is a value for
`label` in the styling prop for the dynamic parameter
<img width="457" alt="Screenshot 2025-05-01 at 21 35 32"
src="https://github.com/user-attachments/assets/3b3a8160-65a2-4411-b763-0d07a4eeb699 "
/>
2025-05-08 08:02:27 -04:00
Bruno Quaresma
9fe5b71d31
chore!: fix workspace apps response ( #17700 )
...
Fix WorkspaceApp response type to better reflect the schema from
https://registry.terraform.io/providers/coder/coder/latest/docs/resources/app .
2025-05-07 10:05:07 -03:00
Bruno Quaresma
d9b00e4849
feat: add inline actions into workspaces table ( #17636 )
...
Related to https://github.com/coder/coder/issues/17311
This PR adds inline actions in the workspaces page. It is a bit
different of the [original
design](https://www.figma.com/design/OR75XeUI0Z3ksqt1mHsNQw/Workspace-views?node-id=656-3979&m=dev )
because I'm splitting the work into three phases that I will explain in
more details in the demo.
https://github.com/user-attachments/assets/6383375e-ed10-45d1-b5d5-b4421e86d158
2025-05-06 11:28:14 -03:00
Jaayden Halko
ec003b7cf9
fix: update default value handling for dynamic defaults ( #17609 )
...
resolves coder/preview#102
2025-05-06 06:40:31 -04:00
Jaayden Halko
e37ddd44d2
chore: improve the design of the create workspace page for dynamic parameters ( #17654 )
...
contributes to coder/preview#59
1. Improves the design and layout of the presets dropdown and switch
2. Improves the design for the immutable badge
<img width="537" alt="Screenshot 2025-05-01 at 23 28 11"
src="https://github.com/user-attachments/assets/f0967758-5ea7-4436-b44a-e014c048202c "
/>
<img width="714" alt="Screenshot 2025-05-01 at 23 28 34"
src="https://github.com/user-attachments/assets/0bb091e1-611f-4a58-8f6f-b3bb027c6a10 "
/>
2025-05-02 11:14:32 -04:00
brettkolodny
f108f9d71f
chore: setup knip and remove unused exports, files, and dependencies ( #17608 )
...
Closes [coder/interal#600 ](https://github.com/coder/internal/issues/600 )
2025-04-30 15:08:25 -04:00
Bruno Quaresma
205076e6e7
refactor: change how timings are formatted ( #17623 )
2025-04-30 13:58:12 -03:00
Bruno Quaresma
1da27a1ebc
fix: handle missed actions in workspace timings ( #17593 )
...
Fix https://github.com/coder/coder/issues/16409
Since the provisioner timings action is not strongly typed, but it is
typed as a generic string, and we are not using
`noUncheckedIndexedAccess`, we can miss some of the actions returned
from the API, causing type errors. To avoid that, I changed the code to
be extra safe by adding `undefined` into the return type.
2025-04-28 15:20:07 -03:00
Jaayden Halko
e562e3c882
chore: mark parameters as required ( #17551 )
...
This adds a red asterisk next to a parameter name if it is required and
marks passes the parameter required value to input and textarea form
controls.
The multi-select combobox needs additional work (in a separate PR) so
that it can handle the required prop correctly for form submit.
<img width="544" alt="Screenshot 2025-04-24 at 00 02 10"
src="https://github.com/user-attachments/assets/5c6758d3-41a4-444d-b7e9-e1fe011703d3 "
/>
2025-04-24 17:14:21 -04:00
Jaayden Halko
3306f0f2a2
fix: fix broken img layout ( #17525 )
...
resolves #17507
Before
<img width="629" alt="Screenshot 2025-04-23 at 11 01 55"
src="https://github.com/user-attachments/assets/79e2945b-0301-4cf5-9b25-f112bac9c2ff "
/>
After
<img width="629" alt="Screenshot 2025-04-23 at 11 02 45"
src="https://github.com/user-attachments/assets/c74d3c03-ebee-42e6-bd16-b4610139cb86 "
/>
2025-04-23 13:01:36 -04:00
Bruno Quaresma
88589ef32f
fix: fix build timeline scale for longer builds ( #17514 )
...
Fix https://github.com/coder/coder/issues/15374
2025-04-23 11:34:08 -03:00
Jaayden Halko
56ee5d8f1b
fix: update dynamic params styles ( #17489 )
...
1. increase form width and adjust form field width #17471
2. Move slider value display as its currently broken for long parameter
titles and descriptions
3. increase the height of the slider
4. automatically increase the height of the textarea as the user types
#17472
2025-04-21 17:50:57 -04:00
Jaayden Halko and brettkolodny
ea017a1de8
feat: add textarea component and placeholders for dynamic parameters component ( #17466 )
...
- Hooks up the textarea component
- Adds placeholders for dropdown, input and multi-select combobox
---------
Co-authored-by: brettkolodny <brettkolodny@gmail.com >
2025-04-18 10:51:32 -04:00
Jaayden Halko
8723fe99f5
feat: add slider to dynamic parameters ( #17453 )
...
This adds the slider to the dynamic parameters component and does some
additional styling cleanup for the dynamic parameters form
<img width="630" alt="Screenshot 2025-04-17 at 16 54 05"
src="https://github.com/user-attachments/assets/1640e8df-7483-4275-99ee-682ff6218658 "
/>
2025-04-17 12:40:37 -04:00
Bruno Quaresma
c8edadae10
refactor: redesign workspace status on workspaces table ( #17425 )
...
Closes https://github.com/coder/coder/issues/17310
**Before:**
<img width="1624" alt="Screenshot 2025-04-16 at 11 49 52"
src="https://github.com/user-attachments/assets/4fb6c8e5-329f-476f-99bb-192c0f9562a2 "
/>
**After:**
<img width="1624" alt="Screenshot 2025-04-16 at 11 49 19"
src="https://github.com/user-attachments/assets/c7025fee-fefd-4064-9101-d7a1b364dd80 "
/>
**Notice!**
- I've create a new size variation for the badge, `xs`. Since we reduced
the line-height for the `text-xs` to be 16px instead of 18px, having a
smaller badge, reducing the vertical size and horizontal paddings, just
worked better.
- I have to update Figma to reflect these changes. I tried, but I was
not able to get it working and updated correctly. I'm going to take a
pause during this week to learn that.
- Updated the destructive, and warning badges to use borders as defined
in the designs
[here](https://www.figma.com/design/WfqIgsTFXN2BscBSSyXWF8/Coder-kit?node-id=489-3472&t=gfnYeLOIFUqHx6qv-0 ).
2025-04-17 10:57:02 -03:00
Jaayden Halko
a8c2586404
feat: implement UI for top level dynamic parameters diagnostics ( #17394 )
...
<img width="672" alt="Screenshot 2025-04-14 at 21 31 11"
src="https://github.com/user-attachments/assets/5ca25c9d-e82e-4d52-8c43-91e4dc31117d "
/>
2025-04-16 13:00:56 -04:00
Jaayden Halko
3d787da83b
feat: setup connection to dynamic parameters websocket ( #17393 )
...
resolves coder/preview#57
2025-04-16 12:49:18 -04:00
Jaayden Halko
1db70bef5d
feat: create dynamic parameter component ( #17351 )
...
- Create DynamicParameter component and test with locally run preview
websocket.
- Adapt CreateWorkspacePageExperimental to work with PreviewParameter
instead of TemplateVersionParameter
- Small changes to checkbox, multi-select combobox and radiogroup
The websocket implementation is temporary for testing purpose with a
locally run preview websocket
2025-04-16 05:00:25 -04:00
Michael Smith
a03a54dd14
fix(site): resolve all Array.prototype.toSorted and Array.prototype.sort bugs ( #17307 )
...
Closes https://github.com/coder/coder/issues/16759
## Changes made
- Replaced all instances of `Array.prototype.toSorted` with
`Array.prototype.sort` to provide better support for older browsers
- Updated all `Array.prototype.sort` calls where necessary to remove
risks of mutation render bugs
- Refactored some code (moved things around, added comments) to make it
more clear that certain `.sort` calls are harmless and don't have any
risks
2025-04-09 15:17:02 -04:00
Michael Smith
c938bfeaab
fix: prevent invalid render output for build logs ( #17233 )
...
## Changes made
- Updated `Line` type in `LogLine.tsx` to support an ID value to prevent
key conflicts during React rendering. Also deleted the `LineWithID`
type, which became redundant after the change
- Updated the `Logs` component to use the ID to avoid render key
conflicts
- Updated any component calls to add the ID as a prop
## Notes
- This does prevent a bunch of extra `console.error` calls that React
will automatically spit out, so this should help us a good bit in the
future
- Beyond being a little annoying, there was a chance (that was tiny for
now) that React could accidentally mix up component instances during
re-renders. That wasn't my main goal with this PR (I just wanted less
noisy logs), but that should now be impossible
2025-04-02 17:32:49 -04:00
Kyle Carberry
583a0c652f
feat: add frontend for app statuses ( #17178 )
...
Check out the stories for the exacts...


2025-04-01 12:35:58 -04:00
ケイラ
8de3cd6400
chore: tweak biome config ( #15864 )
2024-12-17 12:49:34 -07:00
Jaayden Halko
ebb19b34d2
chore: add shadcnui popover, deprecate MUI popover ( #15884 )
...
Add popover component from shadcn/ui -
https://ui.shadcn.com/docs/components/popover
This is preparation for replacing MUI popover and additional work for
organizations redesigns:
https://www.figma.com/design/OR75XeUI0Z3ksqt1mHsNQw/Dashboard-v1?node-id=139-1380&m=dev
2024-12-17 13:31:05 -05:00
Bruno Quaresma
ebfc133641
fix: display build timings when all timings are loaded ( #15728 )
...
- [Refetch timings until script timings are
present](https://github.com/coder/coder/commit/2181bec72b5334e5e15dc575d2234860be02920b )
- [Stay on loading state when agent script timings are
empty](https://github.com/coder/coder/commit/b16fad165c8733c60150b0dfce5df73ab2669e36 )
Fix https://github.com/coder/coder/issues/15273
2024-12-03 13:28:32 -03:00
Bruno Quaresma
f3e1dd8d1c
fix: deduplicate agent script timings ( #15631 )
...
Related to https://github.com/coder/coder/issues/15413
2024-11-22 14:29:31 -03:00
Bruno Quaresma and Danny Kopping
e232aee011
feat(site): add agent connection timings ( #15276 )
...
Local preview:
<img width="1260" alt="Screenshot 2024-10-29 at 16 16 01"
src="https://github.com/user-attachments/assets/10fdb20d-1f2a-4b0a-a8a1-171050ee620d ">
Close https://github.com/coder/internal/issues/116
---------
Co-authored-by: Danny Kopping <danny@coder.com >
2024-11-01 13:29:00 -03:00
Bruno Quaresma
3c7808c575
fix(site): update workspace timings to use theme colors ( #15269 )
...
Fix https://github.com/coder/coder/issues/15266
After fix:
<img width="1210" alt="Screenshot 2024-10-29 at 09 37 02"
src="https://github.com/user-attachments/assets/35ff0361-6323-4e26-b4f2-05da6f1651c6 ">
<img width="1200" alt="Screenshot 2024-10-29 at 09 36 49"
src="https://github.com/user-attachments/assets/c2e55364-9f21-4bd1-bda6-aedf106a9742 ">
<img width="1202" alt="Screenshot 2024-10-29 at 09 36 40"
src="https://github.com/user-attachments/assets/2d0222d9-cf25-4ef9-8d74-f426fbae7bec ">
2024-10-29 13:02:24 -03:00
Bruno Quaresma
4cad6f75a9
fix(site): fix workspace timings verbiage ( #15268 )
2024-10-29 09:05:41 -03:00
Bruno Quaresma
d89ecebb4e
feat(site): add workspace timings ( #15068 )
...
Demo:
https://github.com/user-attachments/assets/046a7224-48e4-4e66-a2ff-a8e1252ad18b
2024-10-23 10:09:37 -03:00
Kayla Washburn-Love
4672849d05
chore: clean up usage of Object.keys ( #14484 )
2024-08-29 17:21:29 -06:00
Kayla Washburn-Love
03f05e25f6
chore(site): make info gray ( #14356 )
2024-08-20 11:59:23 -06:00
Kayla Washburn-Love
95a7c0c4f0
chore: use tabs for prettier and biome ( #14283 )
2024-08-15 14:53:53 -06:00