import { redirect } from "react-router-dom"; import { ApiClient } from "./api_client"; import { deleteEmptyFields } from "../lib/form_utils"; import Token from "../lib/token"; export async function editAccount({ request }) { const client = new ApiClient(); let form_data = await request.formData(); form_data = deleteEmptyFields(form_data); const response = await client.put("/account", form_data); if(response.status == 401) return redirect("/products"); client.token.set(response.data.token); client.token.setRefresh(response.data.refresh); return redirect("/account"); } export async function editAddress({ params, request }) { const client = new ApiClient(); let form_data = await request.formData(); form_data = deleteEmptyFields(form_data); try { const response = await client.put(`/account/addresses/${params.addressId}`, form_data); if(response.status == 401 || response.status == 404) return redirect("/products"); return redirect("/account"); } catch(error) { if(error.response.status == 401) { new Token().logout; return redirect("/products") } else { for(const [key, value] of Object.entries(error.response.data.errors)) { sessionStorage.setItem(key, value); } return redirect(`/account/addresses/${params.addressId}/edit`); } } }