Commit Graph
68 Commits
Author SHA1 Message Date
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 Halkoandbrettkolodny 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...


![image](https://github.com/user-attachments/assets/a1e1b9b0-7b37-4e0d-b99e-64b4766519ef)


![image](https://github.com/user-attachments/assets/d3eb580d-071c-4caf-b393-a7e87da61f5e)
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 QuaresmaandDanny 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