-
{plan.memberLabel.replace(" members", "")}
-
- {plan.blossom ? "✓" : "✕"}
- Blossom
-
-
- {plan.livekit ? "✓" : "✕"}
- LiveKit
-
-
- )}
{!props.selectable && (
-
+
{card}
)
diff --git a/frontend/src/components/RelayDetailCard.tsx b/frontend/src/components/RelayDetailCard.tsx
index 8a23053..a917b90 100644
--- a/frontend/src/components/RelayDetailCard.tsx
+++ b/frontend/src/components/RelayDetailCard.tsx
@@ -298,7 +298,6 @@ export default function RelayDetailCard(props: RelayDetailCardProps) {
diff --git a/frontend/src/components/ToggleButton.tsx b/frontend/src/components/ToggleButton.tsx
new file mode 100644
index 0000000..223ce3f
--- /dev/null
+++ b/frontend/src/components/ToggleButton.tsx
@@ -0,0 +1,28 @@
+export default function ToggleButton(props: {
+ enabled: boolean
+ disabled?: boolean
+ onToggle?: () => void
+ onLabel?: string
+ offLabel?: string
+}) {
+ const label = () => (props.enabled ? (props.onLabel ?? "Enabled") : (props.offLabel ?? "Disabled"))
+
+ return (
+
+
+ {label()}
+
+ )
+}
diff --git a/frontend/src/components/ToggleField.tsx b/frontend/src/components/ToggleField.tsx
new file mode 100644
index 0000000..03d8b09
--- /dev/null
+++ b/frontend/src/components/ToggleField.tsx
@@ -0,0 +1,10 @@
+import type { JSX } from "solid-js"
+
+export default function ToggleField(props: { label: string; children: JSX.Element }) {
+ return (
+
+
{props.label}
+ {props.children}
+
+ )
+}
diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx
index 30bd217..fe1baeb 100644
--- a/frontend/src/pages/Home.tsx
+++ b/frontend/src/pages/Home.tsx
@@ -1,5 +1,5 @@
import { A, useNavigate } from "@solidjs/router"
-import { createSignal } from "solid-js"
+import { createSignal, Show } from "solid-js"
import CheckIcon from "@/components/CheckIcon"
import ExternalLinkIcon from "@/components/ExternalLinkIcon"
import PricingTable from "@/components/PricingTable"
@@ -14,6 +14,12 @@ export default function Home() {
const [showRelayModal, setShowRelayModal] = createSignal(false)
const [showLoginModal, setShowLoginModal] = createSignal(false)
const [draftRelay, setDraftRelay] = createSignal
()
+ const [initialPlan, setInitialPlan] = createSignal("free")
+
+ function openRelayModal(plan: RelayFormValues["plan"] = "free") {
+ setInitialPlan(plan)
+ setShowRelayModal(true)
+ }
async function onRelayFormSubmit(values: RelayFormValues) {
if (account()) {
@@ -47,18 +53,25 @@ export default function Home() {
Caravel
-
{
- if (!account()) {
- e.preventDefault()
- setShowLoginModal(true)
- }
- }}
- class="text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors"
+ setShowLoginModal(true)}
+ class="text-sm font-medium py-1.5 px-4 border border-gray-200 rounded-lg text-gray-600 hover:bg-gray-50 transition-colors"
+ >
+ Sign in
+
+ }
>
- {account() ? "Go to dashboard" : "Sign in"}
-
+
+ Go to dashboard
+
+
@@ -87,10 +100,10 @@ export default function Home() {