Remove "coming soon" label from Ruby tab and runner output

Seto Elkahfi committed Jun 29, 2025 at 11:56 UTC 4b3687b99b46d17fbdda5f379eebdfd756beea11
1 file changed +33 -32
app/components/TabbedRunner.tsx
+33 -32
@@ -1,4 +1,4 @@
1 -"use client"
1 +"use client";
2
3 import { JSX, useState } from "react";
4
@@ -15,7 +15,7 @@ const runnerSnippets = {
15 ✔ Deployment complete.`,
16 Ruby: `$ smb
17 ✔ Valid config
18 -✔ Ruby 🟥 runner detected (coming soon)
18 +✔ Ruby 🟥 runner detected
19 ✔ Valid project
20 ✔ Valid deployment setup
21 ☱ Deploying > Use key path: ~/.ssh/id_11@smbcloud
@@ -32,31 +32,31 @@ const runnerSnippets = {
32 ☱ Deploying > Building the app ✔
33 ☲ Deploying > App restart ✔
34 ☱ Deploying > App is running ✔
35 -✔ Deployment complete.`
35 +✔ Deployment complete.`,
36 };
37
38 export default function TabbedRunner() {
39 - const [tab, setTab] = useState<keyof typeof runnerSnippets>('NodeJS');
39 + const [tab, setTab] = useState<keyof typeof runnerSnippets>("NodeJS");
40 const tabs: { key: keyof typeof runnerSnippets; label: string }[] = [
41 - { key: 'NodeJS', label: 'NodeJS' },
42 - { key: 'Swift', label: 'Swift' },
43 - { key: 'Ruby', label: 'Ruby (coming soon)' },
41 + { key: "NodeJS", label: "NodeJS" },
42 + { key: "Swift", label: "Swift" },
43 + { key: "Ruby", label: "Ruby" },
44 ];
45 return (
46 <div>
47 - <div style={{ display: 'flex', gap: 8, marginBottom: 8 }}>
48 - {tabs.map(t => (
47 + <div style={{ display: "flex", gap: 8, marginBottom: 8 }}>
48 + {tabs.map((t) => (
49 <button
50 key={t.key}
51 onClick={() => setTab(t.key)}
52 style={{
53 - border: 'none',
54 - background: tab === t.key ? '#222' : '#eee',
55 - color: tab === t.key ? '#fff' : '#222',
56 - padding: '4px 12px',
53 + border: "none",
54 + background: tab === t.key ? "#222" : "#eee",
55 + color: tab === t.key ? "#fff" : "#222",
56 + padding: "4px 12px",
57 borderRadius: 4,
58 - cursor: 'pointer',
59 - fontWeight: tab === t.key ? 'bold' : 'normal'
58 + cursor: "pointer",
59 + fontWeight: tab === t.key ? "bold" : "normal",
60 }}
61 >
62 {t.label}
@@ -64,23 +64,24 @@ export default function TabbedRunner() {
64 ))}
65 </div>
66 <pre>
67 - {
68 - runnerSnippets[tab]
69 - .split('\n')
70 - .map((line, idx) => (
71 - <span key={idx}>
72 - {line.split('✔').reduce((acc, part, i, arr) => {
73 - if (i === arr.length - 1) return [...acc, part];
74 - return [
75 - ...acc,
76 - part,
77 - <span key={`check-${i}`} style={{ color: 'green' }}>✔</span>
78 - ];
79 - }, [] as (string | JSX.Element)[])}
80 - {'\n'}
81 - </span>
82 - ))
83 - }
67 + {runnerSnippets[tab].split("\n").map((line, idx) => (
68 + <span key={idx}>
69 + {line.split("✔").reduce(
70 + (acc, part, i, arr) => {
71 + if (i === arr.length - 1) return [...acc, part];
72 + return [
73 + ...acc,
74 + part,
75 + <span key={`check-${i}`} style={{ color: "green" }}>
76 + ✔
77 + </span>,
78 + ];
79 + },
80 + [] as (string | JSX.Element)[],
81 + )}
82 + {"\n"}
83 + </span>
84 + ))}
85 </pre>
86 </div>
87 );