fix: Hot bug fix
This commit is contained in:
@@ -64,7 +64,7 @@ class CarrierStore {
|
||||
getCarriers = async (language: Language) => {
|
||||
if (this.carriers[language as keyof Carriers].loaded) return;
|
||||
|
||||
const response = await authInstance.get("/carrier");
|
||||
const response = await languageInstance(language).get("/carrier");
|
||||
|
||||
runInAction(() => {
|
||||
this.carriers[language as keyof Carriers].data = response.data;
|
||||
@@ -108,46 +108,94 @@ class CarrierStore {
|
||||
return this.carrier[id];
|
||||
};
|
||||
|
||||
createCarrier = async (
|
||||
createCarrierData = {
|
||||
city_id: 0,
|
||||
logo: "",
|
||||
ru: {
|
||||
full_name: "",
|
||||
short_name: "",
|
||||
slogan: "",
|
||||
},
|
||||
en: {
|
||||
full_name: "",
|
||||
short_name: "",
|
||||
slogan: "",
|
||||
},
|
||||
zh: {
|
||||
full_name: "",
|
||||
short_name: "",
|
||||
slogan: "",
|
||||
},
|
||||
};
|
||||
|
||||
setCreateCarrierData = (
|
||||
fullName: string,
|
||||
shortName: string,
|
||||
cityId: number,
|
||||
slogan: string,
|
||||
logoId: string
|
||||
logoId: string,
|
||||
language: Language
|
||||
) => {
|
||||
const { language } = languageStore;
|
||||
const cityName =
|
||||
cityStore.cities[language].data.find((city) => city.id === cityId)
|
||||
?.name || "";
|
||||
|
||||
const response = await languageInstance(language).post("/carrier", {
|
||||
this.createCarrierData.city_id = cityId;
|
||||
this.createCarrierData.logo = logoId;
|
||||
this.createCarrierData[language] = {
|
||||
full_name: fullName,
|
||||
short_name: shortName,
|
||||
slogan: slogan,
|
||||
};
|
||||
};
|
||||
|
||||
createCarrier = async () => {
|
||||
const { language } = languageStore;
|
||||
const cityName =
|
||||
cityStore.cities[language].data.find(
|
||||
(city) => city.id === this.createCarrierData.city_id
|
||||
)?.name || "";
|
||||
|
||||
const payload = {
|
||||
full_name: this.createCarrierData[language].full_name,
|
||||
short_name: this.createCarrierData[language].short_name,
|
||||
city: cityName,
|
||||
city_id: cityId,
|
||||
slogan,
|
||||
logo: logoId,
|
||||
});
|
||||
city_id: this.createCarrierData.city_id,
|
||||
slogan: this.createCarrierData[language].slogan,
|
||||
...(this.createCarrierData.logo
|
||||
? { logo: this.createCarrierData.logo }
|
||||
: {}),
|
||||
};
|
||||
|
||||
const response = await languageInstance(language).post("/carrier", payload);
|
||||
|
||||
const carrierId = response.data.id;
|
||||
|
||||
runInAction(() => {
|
||||
this.carriers[language].data.push(response.data);
|
||||
});
|
||||
|
||||
// Create translations for other languages
|
||||
for (const lang of ["ru", "en", "zh"].filter((l) => l !== language)) {
|
||||
await languageInstance(lang as Language).patch(`/carrier/${carrierId}`, {
|
||||
full_name: fullName,
|
||||
short_name: shortName,
|
||||
const patchPayload = {
|
||||
// @ts-ignore
|
||||
full_name: this.createCarrierData[lang as any].full_name as string,
|
||||
// @ts-ignore
|
||||
short_name: this.createCarrierData[lang as any].short_name as string,
|
||||
city: cityName,
|
||||
city_id: cityId,
|
||||
slogan,
|
||||
logo: logoId,
|
||||
city_id: this.createCarrierData.city_id,
|
||||
// @ts-ignore
|
||||
slogan: this.createCarrierData[lang as any].slogan as string,
|
||||
...(this.createCarrierData.logo
|
||||
? { logo: this.createCarrierData.logo }
|
||||
: {}),
|
||||
};
|
||||
|
||||
await languageInstance(lang as Language).patch(
|
||||
`/carrier/${carrierId}`,
|
||||
patchPayload
|
||||
);
|
||||
|
||||
runInAction(() => {
|
||||
this.carriers[lang as keyof Carriers].data.push(response.data);
|
||||
});
|
||||
}
|
||||
|
||||
runInAction(() => {
|
||||
for (const language of ["ru", "en", "zh"] as const) {
|
||||
this.carriers[language].data.push(response.data);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
editCarrierData = {
|
||||
@@ -206,31 +254,29 @@ class CarrierStore {
|
||||
};
|
||||
|
||||
editCarrier = async (id: number) => {
|
||||
const { language } = languageStore;
|
||||
const cityName =
|
||||
cityStore.cities[languageStore.language].data.find(
|
||||
cityStore.cities[language].data.find(
|
||||
(city) => city.id === this.editCarrierData.city_id
|
||||
)?.name || "";
|
||||
|
||||
for (const language of ["ru", "en", "zh"] as const) {
|
||||
const response = await languageInstance(language).patch(
|
||||
`/carrier/${id}`,
|
||||
{
|
||||
...this.editCarrierData[language],
|
||||
city: cityName,
|
||||
logo: this.editCarrierData.logo,
|
||||
}
|
||||
);
|
||||
for (const lang of ["ru", "en", "zh"] as const) {
|
||||
const response = await languageInstance(lang).patch(`/carrier/${id}`, {
|
||||
...this.editCarrierData[lang],
|
||||
city: cityName,
|
||||
city_id: this.editCarrierData.city_id,
|
||||
logo: this.editCarrierData.logo,
|
||||
});
|
||||
|
||||
runInAction(() => {
|
||||
if (this.carrier[id]) {
|
||||
this.carrier[id][language] = response.data;
|
||||
}
|
||||
for (const language of ["ru", "en", "zh"] as const) {
|
||||
this.carriers[language].data = this.carriers[language].data.map(
|
||||
(carrier: Carrier) =>
|
||||
carrier.id === id ? { ...carrier, ...response.data } : carrier
|
||||
);
|
||||
this.carrier[id][lang] = response.data;
|
||||
}
|
||||
|
||||
this.carriers[lang].data = this.carriers[lang].data.map(
|
||||
(carrier: Carrier) =>
|
||||
carrier.id === id ? { ...carrier, ...response.data } : carrier
|
||||
);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user