Remove personal name fields

Eliminated all personal-name fields from checkout/forms:
- AbonnemangForm: removed kontaktperson; stop syncing to profiles
- Profile pages: removed display_name; profile fetch/update adjusted
- Updated checkout data flow to require only company information for business customers

X-Lovable-Edit-ID: edt-8f8c2c0e-9e3f-4fe5-b636-5d6de99afb59
This commit is contained in:
gpt-engineer-app[bot]
2026-01-28 13:37:33 +00:00
2 changed files with 1 additions and 39 deletions
-20
View File
@@ -5,7 +5,6 @@ import { supabase } from "@/integrations/supabase/client";
const formSchema = z.object({ const formSchema = z.object({
företag: z.string().trim().min(1, "Fyll i företagsnamn").max(100), företag: z.string().trim().min(1, "Fyll i företagsnamn").max(100),
kontaktperson: z.string().trim().max(100).optional(),
epost: z.string().trim().email("Ange en giltig e-postadress").max(255), epost: z.string().trim().email("Ange en giltig e-postadress").max(255),
telefon: z.string().trim().max(20).optional(), telefon: z.string().trim().max(20).optional(),
adress: z.string().trim().max(200).optional(), adress: z.string().trim().max(200).optional(),
@@ -24,7 +23,6 @@ const AbonnemangForm = ({ selectedPlan, onClose }: AbonnemangFormProps) => {
const { user } = useAuth(); const { user } = useAuth();
const [formData, setFormData] = useState({ const [formData, setFormData] = useState({
företag: "", företag: "",
kontaktperson: "",
epost: "", epost: "",
telefon: "", telefon: "",
adress: "", adress: "",
@@ -50,14 +48,11 @@ const AbonnemangForm = ({ selectedPlan, onClose }: AbonnemangFormProps) => {
if (data) { if (data) {
setFormData((prev) => ({ setFormData((prev) => ({
...prev, ...prev,
kontaktperson: data.display_name || prev.kontaktperson,
telefon: data.phone || prev.telefon, telefon: data.phone || prev.telefon,
epost: user.email || prev.epost, epost: user.email || prev.epost,
// Parse address if it exists (format: "gatuadress, postnummer ort")
adress: data.address?.split(",")[0]?.trim() || prev.adress, adress: data.address?.split(",")[0]?.trim() || prev.adress,
})); }));
} else { } else {
// At least fill in email
setFormData((prev) => ({ setFormData((prev) => ({
...prev, ...prev,
epost: user.email || prev.epost, epost: user.email || prev.epost,
@@ -98,7 +93,6 @@ const AbonnemangForm = ({ selectedPlan, onClose }: AbonnemangFormProps) => {
.update({ .update({
address: fullAddress, address: fullAddress,
phone: formData.telefon || null, phone: formData.telefon || null,
display_name: formData.kontaktperson || null,
}) })
.eq("user_id", user.id); .eq("user_id", user.id);
} }
@@ -176,20 +170,6 @@ const AbonnemangForm = ({ selectedPlan, onClose }: AbonnemangFormProps) => {
)} )}
</div> </div>
{/* Kontaktperson */}
<div>
<label className="block mb-2 font-semibold text-foreground">
Kontaktperson
</label>
<input
type="text"
name="kontaktperson"
value={formData.kontaktperson}
onChange={handleChange}
className="w-full px-4 py-3 rounded-sm bg-background border border-border text-foreground focus:outline-none focus:ring-2 focus:ring-primary/30"
/>
</div>
{/* E-post & Telefon */} {/* E-post & Telefon */}
<div className="grid grid-cols-1 md:grid-cols-2 gap-4"> <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<div> <div>
+1 -19
View File
@@ -11,20 +11,17 @@ import { supabase } from "@/integrations/supabase/client";
import Header from "@/components/Header"; import Header from "@/components/Header";
const profileSchema = z.object({ const profileSchema = z.object({
display_name: z.string().trim().max(100, { message: "Namn får max vara 100 tecken" }).optional(),
phone: z.string().trim().max(20, { message: "Telefonnummer får max vara 20 tecken" }).optional(), phone: z.string().trim().max(20, { message: "Telefonnummer får max vara 20 tecken" }).optional(),
address: z.string().trim().max(500, { message: "Adress får max vara 500 tecken" }).optional(), address: z.string().trim().max(500, { message: "Adress får max vara 500 tecken" }).optional(),
}); });
interface ProfileData { interface ProfileData {
display_name: string;
phone: string; phone: string;
address: string; address: string;
} }
const Profile = () => { const Profile = () => {
const [profile, setProfile] = useState<ProfileData>({ const [profile, setProfile] = useState<ProfileData>({
display_name: "",
phone: "", phone: "",
address: "", address: "",
}); });
@@ -49,7 +46,7 @@ const Profile = () => {
try { try {
const { data, error } = await supabase const { data, error } = await supabase
.from("profiles") .from("profiles")
.select("display_name, phone, address") .select("phone, address")
.eq("user_id", user!.id) .eq("user_id", user!.id)
.maybeSingle(); .maybeSingle();
@@ -62,7 +59,6 @@ const Profile = () => {
}); });
} else if (data) { } else if (data) {
setProfile({ setProfile({
display_name: data.display_name || "",
phone: data.phone || "", phone: data.phone || "",
address: data.address || "", address: data.address || "",
}); });
@@ -91,7 +87,6 @@ const Profile = () => {
const { error } = await supabase const { error } = await supabase
.from("profiles") .from("profiles")
.update({ .update({
display_name: profile.display_name || null,
phone: profile.phone || null, phone: profile.phone || null,
address: profile.address || null, address: profile.address || null,
}) })
@@ -137,19 +132,6 @@ const Profile = () => {
</p> </p>
<form onSubmit={handleSubmit} className="space-y-4"> <form onSubmit={handleSubmit} className="space-y-4">
<div className="space-y-2">
<Label htmlFor="display_name">Namn</Label>
<Input
id="display_name"
type="text"
value={profile.display_name}
onChange={(e) =>
setProfile({ ...profile, display_name: e.target.value })
}
placeholder="Ditt namn"
/>
</div>
<div className="space-y-2"> <div className="space-y-2">
<Label htmlFor="phone">Telefon</Label> <Label htmlFor="phone">Telefon</Label>
<Input <Input