Skip to content

Commit 67af849

Browse files
authored
chore(site): remove preview/production envs from env var page (#212)
1 parent ad450da commit 67af849

1 file changed

Lines changed: 6 additions & 129 deletions

File tree

internal/site/app/(app)/[organization]/[agent]/settings/env/env-manager.tsx

Lines changed: 6 additions & 129 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,6 @@ import { useEffect, useMemo, useState } from "react";
3333
import { toast } from "sonner";
3434
import useSWR from "swr";
3535

36-
type Target = "preview" | "production";
37-
3836
type AgentEnvironmentVariable = {
3937
id: string;
4038
created_at: Date;
@@ -60,10 +58,6 @@ export default function EnvManager({
6058
const [newKey, setNewKey] = useState("");
6159
const [newValue, setNewValue] = useState("");
6260
const [newSecret, setNewSecret] = useState(false);
63-
const [newTargets, setNewTargets] = useState<Target[]>([
64-
"preview",
65-
"production",
66-
]);
6761
const [saving, setSaving] = useState(false);
6862

6963
const fetchEnvs = async () => {
@@ -95,23 +89,18 @@ export default function EnvManager({
9589
toast.error("Value is required for non-secret variables");
9690
return;
9791
}
98-
if (newTargets.length === 0) {
99-
toast.error("At least one environment is required");
100-
return;
101-
}
10292
setSaving(true);
10393
try {
10494
await client.agents.env.create({
10595
agent_id: agentId,
10696
key: newKey.trim(),
10797
value: newValue,
10898
secret: newSecret,
109-
target: newTargets,
99+
target: ["preview", "production"],
110100
});
111101
setNewKey("");
112102
setNewValue("");
113103
setNewSecret(false);
114-
setNewTargets(["preview", "production"]);
115104
await fetchEnvs();
116105
toast.success("Environment variable created");
117106
} catch (err) {
@@ -185,52 +174,6 @@ export default function EnvManager({
185174
</div>
186175
</div>
187176

188-
<div className="space-y-2">
189-
<Label>Environments</Label>
190-
<div className="flex items-center gap-4">
191-
<div className="flex items-center space-x-2">
192-
<Checkbox
193-
id="new-preview"
194-
checked={newTargets.includes("preview")}
195-
onCheckedChange={(checked) => {
196-
if (checked) {
197-
setNewTargets([...newTargets, "preview"]);
198-
} else {
199-
setNewTargets(newTargets.filter((t) => t !== "preview"));
200-
}
201-
}}
202-
/>
203-
<label
204-
htmlFor="new-preview"
205-
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
206-
>
207-
Preview
208-
</label>
209-
</div>
210-
<div className="flex items-center space-x-2">
211-
<Checkbox
212-
id="new-production"
213-
checked={newTargets.includes("production")}
214-
onCheckedChange={(checked) => {
215-
if (checked) {
216-
setNewTargets([...newTargets, "production"]);
217-
} else {
218-
setNewTargets(
219-
newTargets.filter((t) => t !== "production")
220-
);
221-
}
222-
}}
223-
/>
224-
<label
225-
htmlFor="new-production"
226-
className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
227-
>
228-
Production
229-
</label>
230-
</div>
231-
</div>
232-
</div>
233-
234177
<div className="flex items-center space-x-2">
235178
<Checkbox
236179
id="new-secret"
@@ -297,9 +240,6 @@ function EnvRow({
297240
const [editValue, setEditValue] = useState(
298241
env.secret ? "" : (env.value ?? "")
299242
);
300-
const [editTargets, setEditTargets] = useState<Target[]>(
301-
env.target as Target[]
302-
);
303243
const [saving, setSaving] = useState(false);
304244
const client = useMemo(() => new Client(), []);
305245

@@ -312,10 +252,6 @@ function EnvRow({
312252
toast.error("Value is required for non-secret variables");
313253
return;
314254
}
315-
if (editTargets.length === 0) {
316-
toast.error("At least one environment is required");
317-
return;
318-
}
319255

320256
setSaving(true);
321257
try {
@@ -325,7 +261,7 @@ function EnvRow({
325261
key: editKey.trim(),
326262
value: env.secret && !editValue ? undefined : editValue,
327263
secret: env.secret,
328-
target: editTargets,
264+
target: ["preview", "production"],
329265
});
330266
setIsEditing(false);
331267
await onUpdate();
@@ -359,13 +295,6 @@ function EnvRow({
359295
return new Date(date).toLocaleDateString();
360296
};
361297

362-
const formatEnvironments = (targets: Target[]) => {
363-
if (targets.length === 2) return "Preview and Production";
364-
if (targets.length === 1)
365-
return targets[0].charAt(0).toUpperCase() + targets[0].slice(1);
366-
return "None";
367-
};
368-
369298
const isUpdated = new Date(env.updated_at) > new Date(env.created_at);
370299
const displayDate = isUpdated ? env.updated_at : env.created_at;
371300
const displayVerb = isUpdated ? "Updated" : "Added";
@@ -375,9 +304,9 @@ function EnvRow({
375304
<>
376305
<Card>
377306
<CardContent className="p-4">
378-
<div className="flex items-start gap-4">
307+
<div className="flex items-center gap-4">
379308
{/* Icon */}
380-
<div className="flex-shrink-0 mt-1">
309+
<div className="flex-shrink-0">
381310
{env.secret ? (
382311
<Lock className="w-5 h-5 text-muted-foreground" />
383312
) : (
@@ -387,17 +316,14 @@ function EnvRow({
387316

388317
{/* Main content */}
389318
<div className="flex-1 min-w-0">
390-
<div className="flex items-center gap-2 mb-1">
319+
<div className="flex items-center gap-2">
391320
<span className="font-mono font-medium">{env.key}</span>
392321
{env.secret && (
393322
<Badge variant="secondary" className="text-xs">
394323
Secret
395324
</Badge>
396325
)}
397326
</div>
398-
<div className="text-sm text-muted-foreground">
399-
{formatEnvironments(env.target as Target[])}
400-
</div>
401327
</div>
402328

403329
{/* Value */}
@@ -415,7 +341,7 @@ function EnvRow({
415341

416342
{/* Metadata */}
417343
<div className="flex-shrink-0 flex items-center gap-3">
418-
<div className="flex flex-col items-end gap-1">
344+
<div className="flex items-center gap-2">
419345
<span className="text-xs text-muted-foreground">
420346
{displayVerb} {formatTimeAgo(displayDate)}
421347
</span>
@@ -492,54 +418,6 @@ function EnvRow({
492418
</div>
493419
</div>
494420

495-
<div className="space-y-2">
496-
<Label>Environments</Label>
497-
<div className="flex items-center gap-4">
498-
<div className="flex items-center space-x-2">
499-
<Checkbox
500-
id={`edit-preview-${env.id}`}
501-
checked={editTargets.includes("preview")}
502-
onCheckedChange={(checked) => {
503-
if (checked) {
504-
setEditTargets([...editTargets, "preview"]);
505-
} else {
506-
setEditTargets(
507-
editTargets.filter((t) => t !== "preview")
508-
);
509-
}
510-
}}
511-
/>
512-
<label
513-
htmlFor={`edit-preview-${env.id}`}
514-
className="text-sm font-medium"
515-
>
516-
Preview
517-
</label>
518-
</div>
519-
<div className="flex items-center space-x-2">
520-
<Checkbox
521-
id={`edit-production-${env.id}`}
522-
checked={editTargets.includes("production")}
523-
onCheckedChange={(checked) => {
524-
if (checked) {
525-
setEditTargets([...editTargets, "production"]);
526-
} else {
527-
setEditTargets(
528-
editTargets.filter((t) => t !== "production")
529-
);
530-
}
531-
}}
532-
/>
533-
<label
534-
htmlFor={`edit-production-${env.id}`}
535-
className="text-sm font-medium"
536-
>
537-
Production
538-
</label>
539-
</div>
540-
</div>
541-
</div>
542-
543421
<div className="flex gap-2">
544422
<Button onClick={handleSave} disabled={saving}>
545423
Save Changes
@@ -550,7 +428,6 @@ function EnvRow({
550428
setIsEditing(false);
551429
setEditKey(env.key);
552430
setEditValue(env.secret ? "" : (env.value ?? ""));
553-
setEditTargets(env.target as Target[]);
554431
}}
555432
disabled={saving}
556433
>

0 commit comments

Comments
 (0)