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:
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user