Polish business dashboard profile, FA layout, and pagination.

Add a real user profile page with multi-address CRUD, localize business profile, fix RTL category tree and login/sidebar logo fallbacks, and keep pagination controls centered with aligned page meta.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-08-03 10:40:56 +03:30
co-authored by Cursor
parent 26b6b0a1b6
commit d8c9c0b017
20 changed files with 1031 additions and 78 deletions
@@ -0,0 +1,49 @@
import { apiRequest } from '../lib/api'
export interface UserAddress {
id: string
label: string | null
province: string
city: string
address: string
postalCode: string | null
landline: string | null
createdAt: string
updatedAt: string
}
export interface UserAddressInput {
label?: string
province: string
city: string
address: string
postalCode?: string
landline?: string
}
export async function listAddresses(signal?: AbortSignal) {
return apiRequest<{ items: UserAddress[] }>('/auth/addresses', { auth: true, signal })
}
export async function createAddress(input: UserAddressInput) {
return apiRequest<{ address: UserAddress }>('/auth/addresses', {
method: 'POST',
auth: true,
body: input,
})
}
export async function updateAddress(addressId: string, input: UserAddressInput) {
return apiRequest<{ address: UserAddress }>(`/auth/addresses/${addressId}`, {
method: 'PATCH',
auth: true,
body: input,
})
}
export async function removeAddress(addressId: string) {
return apiRequest<{ message: string }>(`/auth/addresses/${addressId}`, {
method: 'DELETE',
auth: true,
})
}
+19
View File
@@ -1,6 +1,7 @@
import { apiRequest, setTokens, clearTokens } from '../lib/api'
import { clearActiveBusiness } from '../lib/businessContext'
import type {
AuthUser,
LoginResponse,
MeResponse,
OtpSendResponse,
@@ -61,6 +62,24 @@ export async function changePassword(currentPassword: string, newPassword: strin
})
}
export async function updateProfile(payload: {
firstName?: string
lastName?: string
firstNameEn?: string
lastNameEn?: string
email?: string | null
about?: string
instagram?: string
telegramId?: string
linkedin?: string
}) {
return apiRequest<{ message: string; user: AuthUser }>('/auth/profile', {
method: 'PATCH',
auth: true,
body: payload,
})
}
export function logout() {
clearTokens()
clearActiveBusiness()