Untitled
unknown
plain_text
a year ago
3.6 kB
7
Indexable
import { GetAllAgencies, GetAllCurrencies, GetAllSourceEnum } from '@/services/request.service';
import { GetAllUsers } from '@/services/user.service';
import { capitalize } from '@/utils/inputHelpers';
export const getAddRequestConfig = async () => {
// Fetch the sources from the API
const { response: sourcesResponse } = await GetAllSourceEnum();
const { response: currenciesResponse } = await GetAllCurrencies();
const { response: agenciesResponse } = await GetAllAgencies();
const { response: userResponse } = await GetAllUsers();
// Process users
const users =
userResponse?.data?.map((user: any) => ({
label: `${user.firstName} ${user.lastName}`,
value: user.id,
type: 'User'
})) || [];
// Process agencies
const agencies =
agenciesResponse?.data.agencies?.map((agency) => ({
label: agency.name,
value: agency._id,
type: 'Agency'
})) || [];
// Log agencies to the console
// console.log('🚀 ~ getAddRequestConfig ~ agencies:', agencies);
// Combine users and agencies
const userModels = [...users, ...agencies];
// Process sources
const sources =
sourcesResponse?.data.sources?.map((item) => ({
name: capitalize(item),
value: item
})) || [];
// console.log('🚀 ~ getAddRequestConfig ~ sources:', sources);
// Process currencies
const allCurrencies =
currenciesResponse?.currencies?.map((currency) => ({
label: currency.label,
code: currency.code,
displayedValue: `${currency.label} | ${currency.code.toUpperCase()}`
})) || [];
const currencies = Array.from(new Map(allCurrencies.map((item) => [item.code, item])).values());
const addRequestConfig = [
{
name: 'source',
type: 'select',
required: true,
label: 'Source',
options: sources
},
{
name: 'isB2B',
type: 'checkbox',
label: 'B2B Request',
placeholderInactive: 'B2C',
placeholderActive: 'B2B',
defaultChecked: false
},
{
name: 'customer',
type: 'ac',
label: 'Choose Please Contact',
required: true,
options: userModels,
filterFields: ['label'],
displayFields: ['label']
},
{
name: 'onModel',
type: 'hidden',
label: 'Customer Model',
defaultValue: 'User',
required: true,
options: [
{ name: 'User', value: 'User' },
{ name: 'Agency', value: 'Agency' }
]
},
{
name: 'isUrgent',
type: 'checkbox',
placeholderInactive: 'No',
placeholderActive: 'Yes',
label: 'Urgent Request',
defaultChecked: false
},
{
name: 'isDelegation',
type: 'checkbox',
placeholderInactive: 'No',
placeholderActive: 'Yes',
label: 'Delegated Request',
defaultChecked: false
},
{
name: 'vatIncluded',
type: 'checkbox',
placeholderInactive: 'No',
placeholderActive: 'Yes',
label: 'VAT Included',
defaultChecked: false
},
{
name: 'comments',
type: 'area',
label: 'Comments',
required: false,
placeholder: 'Enter comments here, separate each by pressing Enter',
rows: 4
},
{
name: 'currency',
type: 'ac',
label: 'Currency',
required: true,
options: currencies,
filterFields: ['label', 'code'],
displayFields: ['displayedValue']
}
];
return addRequestConfig;
};
export default getAddRequestConfig;
Editor is loading...
Leave a Comment