Add socials

This commit is contained in:
2025-12-27 16:18:46 +01:00
parent 8d449206d2
commit 78d7afcddb
5 changed files with 31 additions and 10 deletions

View File

@ -128,7 +128,7 @@
} }
.markdown h3 { .markdown h3 {
@apply text-2xl font-medium mt-5 mb-2; @apply text-xl font-bold mb-2;
} }
.markdown p { .markdown p {
@ -144,7 +144,7 @@
} }
.markdown li { .markdown li {
@apply mb-1; /* @apply mb-1; */
} }
.markdown blockquote { .markdown blockquote {

View File

@ -4,10 +4,11 @@ import {
siMastodon, siMastodon,
siPaypal, siPaypal,
siTelegram, siTelegram,
siTwitch,
type SimpleIcon, type SimpleIcon,
} from "simple-icons"; } from "simple-icons";
type SocialKey = "paypal" | "telegram" | "mastodon" | "bluesky" | "linktree"; type SocialKey = "paypal" | "telegram" | "mastodon" | "bluesky" | "linktree" | "twitch";
const SOCIALS: Record< const SOCIALS: Record<
SocialKey, SocialKey,
@ -38,6 +39,11 @@ const SOCIALS: Record<
icon: siLinktree, icon: siLinktree,
href: "https://linktr.ee/gaertan", href: "https://linktr.ee/gaertan",
}, },
twitch: {
label: "Twitch",
icon: siTwitch,
href: "https://www.twitch.tv/gaertan_art",
}
}; };
function BrandSvg({ icon }: { icon: SimpleIcon }) { function BrandSvg({ icon }: { icon: SimpleIcon }) {
@ -54,7 +60,7 @@ function BrandSvg({ icon }: { icon: SimpleIcon }) {
} }
export function SocialLinks({ export function SocialLinks({
items = ["paypal", "telegram", "mastodon", "bluesky", "linktree"], items = ["paypal", "telegram", "mastodon", "bluesky", "linktree", "twitch"],
size = "md", size = "md",
}: { }: {
items?: SocialKey[]; items?: SocialKey[];

View File

@ -53,11 +53,11 @@ export function CommissionCard({ commission }: { commission: CommissionTypeWithI
{commission.options.map((option) => ( {commission.options.map((option) => (
<li key={option.id}> <li key={option.id}>
{option.option?.name}:{" "} {option.option?.name}:{" "}
{option.price {option.price && option.price !== 0
? `${option.price}` ? `${option.price}`
: option.pricePercent : option.pricePercent
? `+${option.pricePercent}%` ? `+${option.pricePercent}%`
: option.priceRange : option.priceRange && option.priceRange !== "00"
? `${option.priceRange}` ? `${option.priceRange}`
: "Included"} : "Included"}
</li> </li>
@ -66,16 +66,16 @@ export function CommissionCard({ commission }: { commission: CommissionTypeWithI
</div> </div>
<div> <div>
<h4 className="font-semibold">Extras</h4> {commission.extras.length > 0 && <h4 className="font-semibold">Extras</h4>}
<ul className="pl-4 list-disc"> <ul className="pl-4 list-disc">
{commission.extras.map((extra) => ( {commission.extras.map((extra) => (
<li key={extra.id}> <li key={extra.id}>
{extra.extra?.name}:{" "} {extra.extra?.name}:{" "}
{extra.price {extra.price && extra.price !== 0
? `${extra.price}` ? `${extra.price}`
: extra.pricePercent : extra.pricePercent
? `+${extra.pricePercent}%` ? `+${extra.pricePercent}%`
: extra.priceRange : extra.priceRange && extra.priceRange !== "00"
? `${extra.priceRange}` ? `${extra.priceRange}`
: "Included"} : "Included"}
</li> </li>

View File

@ -40,6 +40,7 @@ export function CommissionOrderForm({ types }: Props) {
extraIds: [], extraIds: [],
customerName: "", customerName: "",
customerEmail: "", customerEmail: "",
customerSocials: "",
message: "", message: "",
}, },
}) })
@ -190,7 +191,20 @@ export function CommissionOrderForm({ types }: Props) {
<FormItem> <FormItem>
<FormLabel>Email</FormLabel> <FormLabel>Email</FormLabel>
<FormControl> <FormControl>
<Input placeholder="jane@example.com" {...field} /> <Input placeholder="E-Mail address for invoice and/or contact" {...field} />
</FormControl>
<FormMessage />
</FormItem>
)}
/>
<FormField
control={form.control}
name="customerSocials"
render={({ field }) => (
<FormItem>
<FormLabel>Socials</FormLabel>
<FormControl>
<Input placeholder="Alternative for contact (telegram, bsky, fediverse/mastodon)" {...field} />
</FormControl> </FormControl>
<FormMessage /> <FormMessage />
</FormItem> </FormItem>

View File

@ -7,5 +7,6 @@ export const commissionOrderSchema = z.object({
customFields: z.record(z.string(), z.any()).optional(), customFields: z.record(z.string(), z.any()).optional(),
customerName: z.string().min(2, "Enter your name"), customerName: z.string().min(2, "Enter your name"),
customerEmail: z.email("Invalid email"), customerEmail: z.email("Invalid email"),
customerSocials: z.string().optional(),
message: z.string().min(5, "Please describe what you want"), message: z.string().min(5, "Please describe what you want"),
}) })