Commit 491a50c2 authored by Alish's avatar Alish
Browse files

feat: complete functionality with new fields for Merchant #1029

parent a7c9e2bd
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -203,7 +203,6 @@
			<div class="col-sm-9">
				<nb-radio-group
					[(value)]="delivery"
					(valueChange)="changeDelivery($event)"
					class="row m-0"
					name="size"
				>
+43 −15
Original line number Diff line number Diff line
@@ -45,7 +45,8 @@ export class BasicInfoFormComponent implements OnInit {
	uploaderPlaceholder: string;

	carriersOptions: IMultiSelectOption[];
	delivery = 'all';

	private _delivery: 'all' | 'onlyStore' | 'preferStore' = 'all';

	static buildForm(formBuilder: FormBuilder): FormGroup {
		// would be used in the parent component and injected into this.form
@@ -129,13 +130,24 @@ export class BasicInfoFormComponent implements OnInit {
						preferRestrictedCarriersForDelivery:
							basicInfo.preferRestrictedCarriersForDelivery
				  }
				: {})
				: {
						useOnlyRestrictedCarriersForDelivery: false,
						preferRestrictedCarriersForDelivery: false
				  })
		};
	}

	setValue<T extends WarehouseBasicInfo>(basicInfo: T) {
		FormHelpers.deepMark(this.form, 'dirty');

		basicInfo = Object.assign(
			{
				useOnlyRestrictedCarriersForDelivery: false,
				preferRestrictedCarriersForDelivery: false
			},
			basicInfo
		);

		this.form.setValue(
			pick(basicInfo, [
				...Object.keys(this.getValue()),
@@ -145,6 +157,17 @@ export class BasicInfoFormComponent implements OnInit {
				'preferRestrictedCarriersForDelivery'
			])
		);

		const onlyStore = basicInfo.useOnlyRestrictedCarriersForDelivery;
		const preferStore = basicInfo.preferRestrictedCarriersForDelivery;

		if (onlyStore) {
			this.delivery = 'onlyStore';
		} else if (preferStore) {
			this.delivery = 'preferStore';
		} else {
			this.delivery = 'all';
		}
	}

	getPassword(): string {
@@ -196,24 +219,16 @@ export class BasicInfoFormComponent implements OnInit {
		return this.form.get('preferRestrictedCarriersForDelivery');
	}

	get showLogoMeta() {
		return this.logo && this.logo.value !== '';
	}

	ngOnInit(): void {
		this.loadCarriersOptions();
		this.getUploaderPlaceholderText();
	get delivery() {
		return this._delivery;
	}

	deleteImg() {
		this.logo.setValue('');
	}

	changeDelivery(type: 'all' | 'onlyStore' | 'preferStore') {
	set delivery(value) {
		this._delivery = value;
		this.useOnlyRestrictedCarriersForDelivery.setValue(false);
		this.preferRestrictedCarriersForDelivery.setValue(false);

		switch (type) {
		switch (value) {
			case 'onlyStore':
				this.useOnlyRestrictedCarriersForDelivery.setValue(true);
				break;
@@ -223,6 +238,19 @@ export class BasicInfoFormComponent implements OnInit {
		}
	}

	get showLogoMeta() {
		return this.logo && this.logo.value !== '';
	}

	ngOnInit(): void {
		this.loadCarriersOptions();
		this.getUploaderPlaceholderText();
	}

	deleteImg() {
		this.logo.setValue('');
	}

	private async getUploaderPlaceholderText() {
		const res = await this.translateService
			.get(['WAREHOUSE_VIEW.MUTATION.PHOTO', 'OPTIONAL'])
+16 −4
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ export class WarehouseManageTabsDetailsComponent
		)
	);

	private _delivery: 'all' | 'onlyStore' | 'preferStore';
	private _delivery: 'all' | 'onlyStore' | 'preferStore' = 'all';

	constructor(
		private readonly _carrierRouter: CarrierRouter,
@@ -159,9 +159,9 @@ export class WarehouseManageTabsDetailsComponent
			isManufacturing: [true, [Validators.required]],
			isCarrierRequired: [true, [Validators.required]],
			hasRestrictedCarriers: [false, [Validators.required]],
			carriersIds: [[]],
			useOnlyRestrictedCarriersForDelivery: [false],
			preferRestrictedCarriersForDelivery: [false]
			preferRestrictedCarriersForDelivery: [false],
			carriersIds: [[]]
		});
	}

@@ -207,12 +207,24 @@ export class WarehouseManageTabsDetailsComponent
						preferRestrictedCarriersForDelivery:
							basicInfo.preferRestrictedCarriersForDelivery
				  }
				: {})
				: {
						useOnlyRestrictedCarriersForDelivery: false,
						preferRestrictedCarriersForDelivery: false
				  })
		};
	}

	setValue<T extends WarehouseManageTabsDetails>(basicInfo: T) {
		FormHelpers.deepMark(this.form, 'dirty');

		basicInfo = Object.assign(
			{
				useOnlyRestrictedCarriersForDelivery: false,
				preferRestrictedCarriersForDelivery: false
			},
			basicInfo
		);

		this.form.setValue(
			_.pick(basicInfo, [
				...Object.keys(this.getValue()),