From 1da4fe5506feea7641c03f94df7fa53b1590abaa Mon Sep 17 00:00:00 2001 From: Margarita Golubeva Date: Mon, 17 Jun 2024 20:39:53 +0300 Subject: [PATCH] fix: update text content --- .../CountBadge/view/CountBadgeView.ts | 9 +- .../UserAddress/view/UserAddressView.ts | 56 +++----- .../AddressAdd/view/AddressAddView.ts | 9 +- .../AddressEdit/view/AddressEditView.ts | 10 +- .../PasswordEdit/view/PasswordEditView.ts | 20 ++- src/pages/CartPage/view/CartPageView.ts | 131 ++++++++---------- .../NotFoundPage/view/NotFoundPageView.ts | 18 +-- src/shared/Posts/posts.ts | 24 ++-- src/shared/Store/Store.ts | 2 +- .../{constants => Store}/initialState.ts | 6 +- src/shared/constants/forms.ts | 7 + .../constants/forms/validationParams.ts | 2 +- src/shared/constants/messages.ts | 18 +-- src/shared/constants/pages.ts | 22 ++- src/shared/constants/tooltip.ts | 7 +- .../Header/view/headerView.module.scss | 4 +- .../UserAddresses/view/UserAddressesView.ts | 36 +++-- src/widgets/UserInfo/view/UserInfoView.ts | 60 +++----- 18 files changed, 207 insertions(+), 234 deletions(-) rename src/shared/{constants => Store}/initialState.ts (71%) diff --git a/src/entities/CountBadge/view/CountBadgeView.ts b/src/entities/CountBadge/view/CountBadgeView.ts index 859435e0..97c3a58e 100644 --- a/src/entities/CountBadge/view/CountBadgeView.ts +++ b/src/entities/CountBadge/view/CountBadgeView.ts @@ -8,18 +8,15 @@ class CountBadgeView { private countBadgeWrap: HTMLDivElement; constructor() { - this.countBadgeWrap = this.createHTML(); this.countBadge = this.createBadge(); + this.countBadgeWrap = this.createHTML(); } private createBadge(): HTMLSpanElement { - this.countBadge = createBaseElement({ + return createBaseElement({ cssClasses: [styles.badge], tag: 'span', }); - this.countBadgeWrap.append(this.countBadge); - - return this.countBadge; } private createHTML(): HTMLDivElement { @@ -28,6 +25,8 @@ class CountBadgeView { tag: 'div', }); + this.countBadgeWrap.append(this.countBadge); + return this.countBadgeWrap; } diff --git a/src/entities/UserAddress/view/UserAddressView.ts b/src/entities/UserAddress/view/UserAddressView.ts index 2282b959..13f6b5b0 100644 --- a/src/entities/UserAddress/view/UserAddressView.ts +++ b/src/entities/UserAddress/view/UserAddressView.ts @@ -4,13 +4,14 @@ import type { Address } from '@/shared/types/user'; import ButtonModel from '@/shared/Button/model/ButtonModel.ts'; import observeStore, { selectCurrentLanguage } from '@/shared/Store/observer.ts'; import COUNTRIES_LIST from '@/shared/constants/countriesList.ts'; -import { ADDRESS, ADDRESS_TEXT, type AddressType } from '@/shared/constants/forms.ts'; +import { ADDRESS, ADDRESS_TEXT, ADDRESS_TEXT_KEY, type AddressType } from '@/shared/constants/forms.ts'; import SVG_DETAIL from '@/shared/constants/svg.ts'; import TOOLTIP_TEXT, { TOOLTIP_TEXT_KEY } from '@/shared/constants/tooltip.ts'; import createBaseElement from '@/shared/utils/createBaseElement.ts'; import createSVGUse from '@/shared/utils/createSVGUse.ts'; import findKeyByValue from '@/shared/utils/findKeyByValue.ts'; import getCurrentLanguage from '@/shared/utils/getCurrentLanguage.ts'; +import observeCurrentLanguage from '@/shared/utils/observeCurrentLanguage.ts'; import styles from './userAddressView.module.scss'; @@ -45,6 +46,8 @@ class UserAddressView { this.streetNameSpan = this.createStreetNameSpan(); this.labelsWrapper = this.createLabelsWrapper(); this.view = this.createHTML(types, inactiveTypes); + + this.observeStoreChanges(); } private createCitySpan(): HTMLSpanElement { @@ -54,14 +57,6 @@ class UserAddressView { tag: 'span', }); - observeStore(selectCurrentLanguage, () => { - const text = ADDRESS_TEXT[getCurrentLanguage()].CITY; - const textNode = [...this.citySpan.childNodes].find((child) => child.nodeType === Node.TEXT_NODE); - if (textNode) { - textNode.textContent = text; - } - }); - const accentSpan = createBaseElement({ cssClasses: [styles.accentSpan], innerContent: this.currentAddress.city, @@ -110,10 +105,6 @@ class UserAddressView { svg.append(createSVGUse(SVG_DETAIL.DELETE)); this.deleteButton.getHTML().append(svg); - observeStore(selectCurrentLanguage, () => { - this.deleteButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].DELETE_ADDRESS; - }); - return this.deleteButton; } @@ -127,10 +118,6 @@ class UserAddressView { svg.append(createSVGUse(SVG_DETAIL.EDIT)); this.editButton.getHTML().append(svg); - observeStore(selectCurrentLanguage, () => { - this.editButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].EDIT_ADDRESS; - }); - return this.editButton; } @@ -183,11 +170,10 @@ class UserAddressView { } private createLabelsWrapper(): HTMLDivElement { - this.labelsWrapper = createBaseElement({ + return createBaseElement({ cssClasses: [styles.labelsWrapper], tag: 'div', }); - return this.labelsWrapper; } private createPostalCodeSpan(): HTMLSpanElement { @@ -197,14 +183,6 @@ class UserAddressView { tag: 'span', }); - observeStore(selectCurrentLanguage, () => { - const text = ADDRESS_TEXT[getCurrentLanguage()].POSTAL_CODE; - const textNode = [...this.postalCodeSpan.childNodes].find((child) => child.nodeType === Node.TEXT_NODE); - if (textNode) { - textNode.textContent = text; - } - }); - const accentSpan = createBaseElement({ cssClasses: [styles.accentSpan], innerContent: this.currentAddress.postalCode, @@ -222,14 +200,6 @@ class UserAddressView { tag: 'span', }); - observeStore(selectCurrentLanguage, () => { - const text = ADDRESS_TEXT[getCurrentLanguage()].STREET; - const textNode = [...this.streetNameSpan.childNodes].find((child) => child.nodeType === Node.TEXT_NODE); - if (textNode) { - textNode.textContent = text; - } - }); - const accentSpan = createBaseElement({ cssClasses: [styles.accentSpan], innerContent: this.currentAddress.streetName, @@ -240,6 +210,22 @@ class UserAddressView { return this.streetNameSpan; } + private observeStoreChanges(): void { + observeStore(selectCurrentLanguage, () => { + const text = ADDRESS_TEXT[getCurrentLanguage()].CITY; + const textNode = [...this.citySpan.childNodes].find((child) => child.nodeType === Node.TEXT_NODE); + if (textNode) { + textNode.textContent = text; + } + + this.deleteButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].DELETE_ADDRESS; + this.editButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].EDIT_ADDRESS; + }); + + observeCurrentLanguage(this.postalCodeSpan, ADDRESS_TEXT, ADDRESS_TEXT_KEY.POSTAL_CODE); + observeCurrentLanguage(this.streetNameSpan, ADDRESS_TEXT, ADDRESS_TEXT_KEY.STREET); + } + private setActiveAddressLabel(ActiveType: AddressType, inactive?: boolean): void { let addressType = null; switch (ActiveType) { diff --git a/src/features/AddressAdd/view/AddressAddView.ts b/src/features/AddressAdd/view/AddressAddView.ts index 5a498179..7413cfcd 100644 --- a/src/features/AddressAdd/view/AddressAddView.ts +++ b/src/features/AddressAdd/view/AddressAddView.ts @@ -16,14 +16,15 @@ class AddressAddView { this.saveChangesButton = this.createSaveChangesButton(); this.cancelButton = this.createCancelButton(); this.view = this.createHTML(); + + this.saveChangesButton.setDisabled(); } private createCancelButton(): ButtonModel { - this.cancelButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.cancelButton], text: BUTTON_TEXT[getCurrentLanguage()].CANCEL, }); - return this.cancelButton; } private createHTML(): HTMLFormElement { @@ -36,15 +37,13 @@ class AddressAddView { } private createSaveChangesButton(): ButtonModel { - this.saveChangesButton = new ButtonModel({ + return new ButtonModel({ attrs: { type: BUTTON_TYPE.SUBMIT, }, classes: [styles.saveChangesButton], text: BUTTON_TEXT[getCurrentLanguage()].ADD_ADDRESS, }); - this.saveChangesButton.setDisabled(); - return this.saveChangesButton; } public getCancelButton(): ButtonModel { diff --git a/src/features/AddressEdit/view/AddressEditView.ts b/src/features/AddressEdit/view/AddressEditView.ts index ea06e003..dc5f3035 100644 --- a/src/features/AddressEdit/view/AddressEditView.ts +++ b/src/features/AddressEdit/view/AddressEditView.ts @@ -16,14 +16,15 @@ class AddressEditView { this.saveChangesButton = this.createSaveChangesButton(); this.cancelButton = this.createCancelButton(); this.view = this.createHTML(); + + this.saveChangesButton.setDisabled(); } private createCancelButton(): ButtonModel { - this.cancelButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.cancelButton], text: BUTTON_TEXT[getCurrentLanguage()].CANCEL, }); - return this.cancelButton; } private createHTML(): HTMLFormElement { @@ -31,18 +32,15 @@ class AddressEditView { cssClasses: [styles.wrapper], tag: 'form', }); - this.view.append(this.saveChangesButton.getHTML(), this.cancelButton.getHTML()); return this.view; } private createSaveChangesButton(): ButtonModel { - this.saveChangesButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.saveChangesButton], text: BUTTON_TEXT[getCurrentLanguage()].SAVE_CHANGES, }); - this.saveChangesButton.setDisabled(); - return this.saveChangesButton; } public getCancelButton(): ButtonModel { diff --git a/src/features/PasswordEdit/view/PasswordEditView.ts b/src/features/PasswordEdit/view/PasswordEditView.ts index 613d4c06..3ab8182e 100644 --- a/src/features/PasswordEdit/view/PasswordEditView.ts +++ b/src/features/PasswordEdit/view/PasswordEditView.ts @@ -37,14 +37,15 @@ class PasswordEditView { this.oldPasswordField = this.createOldPasswordField(); this.newPasswordField = this.createNewPasswordField(); this.view = this.createHTML(); + + this.submitButton.setDisabled(); } private createCancelButton(): ButtonModel { - this.cancelButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.cancelButton], text: BUTTON_TEXT[getCurrentLanguage()].CANCEL, }); - return this.cancelButton; } private createHTML(): HTMLFormElement { @@ -65,6 +66,9 @@ class PasswordEditView { } }); + this.switchPasswordElementSVG(INPUT_TYPE.PASSWORD, this.showOldPasswordElement); + this.switchPasswordElementSVG(INPUT_TYPE.PASSWORD, this.showNewPasswordElement); + this.view.append(this.submitButton.getHTML(), this.cancelButton.getHTML()); return this.view; } @@ -90,30 +94,24 @@ class PasswordEditView { } private createShowNewPasswordElement(): HTMLDivElement { - this.showNewPasswordElement = createBaseElement({ + return createBaseElement({ cssClasses: [styles.showPasswordElement], tag: 'div', }); - this.switchPasswordElementSVG(INPUT_TYPE.PASSWORD, this.showNewPasswordElement); - return this.showNewPasswordElement; } private createShowOldPasswordElement(): HTMLDivElement { - this.showOldPasswordElement = createBaseElement({ + return createBaseElement({ cssClasses: [styles.showPasswordElement], tag: 'div', }); - this.switchPasswordElementSVG(INPUT_TYPE.PASSWORD, this.showOldPasswordElement); - return this.showOldPasswordElement; } private createSubmitButton(): ButtonModel { - this.submitButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.submitButton], text: BUTTON_TEXT[getCurrentLanguage()].SAVE_CHANGES, }); - this.submitButton.setDisabled(); - return this.submitButton; } public getCancelButton(): ButtonModel { diff --git a/src/pages/CartPage/view/CartPageView.ts b/src/pages/CartPage/view/CartPageView.ts index f6975149..69fb60b0 100644 --- a/src/pages/CartPage/view/CartPageView.ts +++ b/src/pages/CartPage/view/CartPageView.ts @@ -11,7 +11,8 @@ import InputModel from '@/shared/Input/model/InputModel.ts'; import LinkModel from '@/shared/Link/model/LinkModel.ts'; import modal from '@/shared/Modal/model/ModalModel.ts'; import USER_MESSAGE from '@/shared/constants/confirmUserMessage.ts'; -import { PAGE_ID } from '@/shared/constants/pages.ts'; +import { CART_PAGE_TITLE, PAGE_ID } from '@/shared/constants/pages.ts'; +import clearOutElement from '@/shared/utils/clearOutElement.ts'; import createBaseElement from '@/shared/utils/createBaseElement.ts'; import getCurrentLanguage from '@/shared/utils/getCurrentLanguage.ts'; import { cartPrice } from '@/shared/utils/messageTemplates.ts'; @@ -25,25 +26,6 @@ type textElementsType = { textItem: languageVariants; }; -const TITLE = { - BUTTON_CHECKOUT: { en: 'Proceed to Checkout', ru: 'Оформить заказ' }, - BUTTON_COUPON: { en: 'Apply', ru: 'Применить' }, - CART_TOTAL: { en: 'Cart Totals', ru: 'Итого по корзине' }, - CLEAR: { en: 'Clear all', ru: 'Очистить' }, - CONTINUE: { en: 'Continue Shopping', ru: 'Продолжить покупки' }, - COUPON_APPLY: { en: 'Apply Coupon', ru: 'Применить купон' }, - COUPON_DISCOUNT: { en: 'Cart Discount', ru: 'Скидка на корзину' }, - EMPTY: { - en: `Oops! Looks like you haven't added the item to your cart yet.`, - ru: `Ой! Похоже, вы еще не добавили товар в корзину.`, - }, - INPUT_COUPON: { en: 'Enter coupon here...', ru: 'Введите купон здесь...' }, - PRICE: { en: 'Price', ru: 'Цена' }, - PRODUCT: { en: 'Product', ru: 'Продукт' }, - QUANTITY: { en: 'Quantity', ru: 'Количество' }, - SUBTOTAL: { en: 'Subtotal', ru: 'Сумма' }, - TOTAL: { en: 'Total', ru: 'Итого' }, -}; class CartPageView { private addDiscountCallback: DiscountCallback; @@ -108,17 +90,9 @@ class CartPageView { this.total = createBaseElement({ cssClasses: [styles.totalPrice], tag: 'p' }); this.discountTotal = createBaseElement({ cssClasses: [styles.couponsWrap], tag: 'summary' }); this.discountList = createBaseElement({ cssClasses: [styles.couponsList], tag: 'ul' }); - this.couponButton = createBaseElement({ - cssClasses: [styles.button, styles.applyBtn], - innerContent: TITLE.BUTTON_COUPON[this.language], - tag: 'button', - }); - this.totalDiscountTitle = createBaseElement({ - cssClasses: [styles.title], - innerContent: TITLE.COUPON_DISCOUNT[this.language], - tag: 'p', - }); - this.clear = new ButtonModel({ classes: [styles.continue, styles.clear], text: TITLE.CLEAR[this.language] }); + this.couponButton = this.createCouponButton(); + this.totalDiscountTitle = this.createTotalDiscountTitle(); + this.clear = this.createClearButton(); this.totalWrap = this.createWrapHTML(); this.totalWrap.classList.add(styles.total); this.page.append(this.productWrap); @@ -134,29 +108,29 @@ class CartPageView { const tr = createBaseElement({ cssClasses: [styles.tr, styles.head], tag: 'tr' }); const thImage = createBaseElement({ cssClasses: [styles.th, styles.imgCell, styles.mainText], - innerContent: TITLE.PRODUCT[this.language], + innerContent: CART_PAGE_TITLE.PRODUCT[this.language], tag: 'th', }); - this.textElement.push({ element: thImage, textItem: TITLE.PRODUCT }); + this.textElement.push({ element: thImage, textItem: CART_PAGE_TITLE.PRODUCT }); const thProduct = createBaseElement({ cssClasses: [styles.th, styles.nameCell, styles.mainText], tag: 'th' }); const thPrice = createBaseElement({ cssClasses: [styles.th, styles.priceCell, styles.mainText], - innerContent: TITLE.PRICE[this.language], + innerContent: CART_PAGE_TITLE.PRICE[this.language], tag: 'th', }); - this.textElement.push({ element: thPrice, textItem: TITLE.PRICE }); + this.textElement.push({ element: thPrice, textItem: CART_PAGE_TITLE.PRICE }); const thQuantity = createBaseElement({ cssClasses: [styles.th, styles.quantityCell, styles.mainText], - innerContent: TITLE.QUANTITY[this.language], + innerContent: CART_PAGE_TITLE.QUANTITY[this.language], tag: 'th', }); - this.textElement.push({ element: thQuantity, textItem: TITLE.QUANTITY }); + this.textElement.push({ element: thQuantity, textItem: CART_PAGE_TITLE.QUANTITY }); const thTotal = createBaseElement({ cssClasses: [styles.th, styles.totalCell, styles.mainText], - innerContent: TITLE.TOTAL[this.language], + innerContent: CART_PAGE_TITLE.TOTAL[this.language], tag: 'th', }); - this.textElement.push({ element: thTotal, textItem: TITLE.TOTAL }); + this.textElement.push({ element: thTotal, textItem: CART_PAGE_TITLE.TOTAL }); const thDelete = this.createDeleCell(); this.tableBody = createBaseElement({ cssClasses: [styles.tbody], tag: 'tbody' }); this.table.append(thead, this.tableBody); @@ -170,26 +144,26 @@ class CartPageView { const totalBlockWrap = createBaseElement({ cssClasses: [styles.totalsWrap], tag: 'div' }); const title = createBaseElement({ cssClasses: [styles.totalTitle, styles.border, styles.mobileHide], - innerContent: TITLE.CART_TOTAL[this.language], + innerContent: CART_PAGE_TITLE.CART_TOTAL[this.language], tag: 'p', }); - this.textElement.push({ element: title, textItem: TITLE.CART_TOTAL }); + this.textElement.push({ element: title, textItem: CART_PAGE_TITLE.CART_TOTAL }); const couponTitle = createBaseElement({ cssClasses: [styles.title, styles.mobileHide], - innerContent: TITLE.COUPON_APPLY[this.language], + innerContent: CART_PAGE_TITLE.COUPON_APPLY[this.language], tag: 'p', }); - this.textElement.push({ element: couponTitle, textItem: TITLE.COUPON_APPLY }); + this.textElement.push({ element: couponTitle, textItem: CART_PAGE_TITLE.COUPON_APPLY }); const couponWrap = this.createCouponHTML(); const subtotalWrap = this.createSubtotalHTML(); const discountWrap = this.createDiscountHTML(); const totalWrap = this.createTotalHTML(); const finalButton = createBaseElement({ cssClasses: [styles.button, styles.checkoutBtn], - innerContent: TITLE.BUTTON_CHECKOUT[this.language], + innerContent: CART_PAGE_TITLE.BUTTON_CHECKOUT[this.language], tag: 'button', }); - this.textElement.push({ element: finalButton, textItem: TITLE.BUTTON_CHECKOUT }); + this.textElement.push({ element: finalButton, textItem: CART_PAGE_TITLE.BUTTON_CHECKOUT }); const continueLink = this.createCatalogLinkHTML(); continueLink.getHTML().classList.add(styles.mobileHide); totalBlockWrap.append( @@ -213,9 +187,9 @@ class CartPageView { href: PAGE_ID.CATALOG_PAGE, }, classes: [styles.continue], - text: TITLE.CONTINUE[this.language], + text: CART_PAGE_TITLE.CONTINUE[this.language], }); - this.textElement.push({ element: link.getHTML(), textItem: TITLE.CONTINUE }); + this.textElement.push({ element: link.getHTML(), textItem: CART_PAGE_TITLE.CONTINUE }); link.getHTML().addEventListener('click', (event) => { event.preventDefault(); @@ -224,16 +198,31 @@ class CartPageView { return link; } + private createClearButton(): ButtonModel { + return new ButtonModel({ + classes: [styles.continue, styles.clear], + text: CART_PAGE_TITLE.CLEAR[this.language], + }); + } + + private createCouponButton(): HTMLButtonElement { + return createBaseElement({ + cssClasses: [styles.button, styles.applyBtn], + innerContent: CART_PAGE_TITLE.BUTTON_COUPON[this.language], + tag: 'button', + }); + } + private createCouponHTML(): HTMLDivElement { const couponWrap = createBaseElement({ cssClasses: [styles.totalWrap], tag: 'div' }); const couponInput = new InputModel({ id: 'coupon', - placeholder: TITLE.INPUT_COUPON[this.language], + placeholder: CART_PAGE_TITLE.INPUT_COUPON[this.language], }); couponInput.getHTML().classList.add(styles.couponInput); - this.textElement.push({ element: couponInput.getHTML(), textItem: TITLE.INPUT_COUPON }); - this.textElement.push({ element: this.couponButton, textItem: TITLE.BUTTON_COUPON }); + this.textElement.push({ element: couponInput.getHTML(), textItem: CART_PAGE_TITLE.INPUT_COUPON }); + this.textElement.push({ element: this.couponButton, textItem: CART_PAGE_TITLE.BUTTON_COUPON }); this.couponButton.addEventListener('click', (evn: Event) => { evn.preventDefault(); this.addDiscountCallback(couponInput.getHTML().value); @@ -246,7 +235,7 @@ class CartPageView { private createDeleCell(): HTMLTableCellElement { const tdDelete = createBaseElement({ cssClasses: [styles.th, styles.deleteCell, styles.mainText], tag: 'th' }); - this.textElement.push({ element: this.clear.getHTML(), textItem: TITLE.CLEAR }); + this.textElement.push({ element: this.clear.getHTML(), textItem: CART_PAGE_TITLE.CLEAR }); this.clear.getHTML().addEventListener('click', () => { const confirmModel = new ConfirmModel(() => this.clearCallback(), USER_MESSAGE[getCurrentLanguage()].CLEAR_CART); modal.setContent(confirmModel.getHTML()); @@ -259,7 +248,7 @@ class CartPageView { private createDiscountHTML(): HTMLDetailsElement { const discountWrap = createBaseElement({ cssClasses: [styles.totalWrap], tag: 'details' }); discountWrap.append(this.discountTotal, this.discountList); - this.textElement.push({ element: this.totalDiscountTitle, textItem: TITLE.COUPON_DISCOUNT }); + this.textElement.push({ element: this.totalDiscountTitle, textItem: CART_PAGE_TITLE.COUPON_DISCOUNT }); return discountWrap; } @@ -267,10 +256,10 @@ class CartPageView { const empty = createBaseElement({ cssClasses: [styles.empty, styles.hide], tag: 'div' }); const emptyTitle = createBaseElement({ cssClasses: [styles.emptyTitle], - innerContent: TITLE.EMPTY[this.language], + innerContent: CART_PAGE_TITLE.EMPTY[this.language], tag: 'p', }); - this.textElement.push({ element: emptyTitle, textItem: TITLE.EMPTY }); + this.textElement.push({ element: emptyTitle, textItem: CART_PAGE_TITLE.EMPTY }); const continueLink = this.createCatalogLinkHTML(); empty.append(emptyTitle, continueLink.getHTML()); this.page.append(empty); @@ -292,33 +281,39 @@ class CartPageView { const subtotalWrap = createBaseElement({ cssClasses: [styles.totalWrap], tag: 'div' }); const subtotalTitle = createBaseElement({ cssClasses: [styles.title], - innerContent: TITLE.SUBTOTAL[this.language], + innerContent: CART_PAGE_TITLE.SUBTOTAL[this.language], tag: 'p', }); subtotalWrap.append(subtotalTitle, this.subTotal); - this.textElement.push({ element: subtotalTitle, textItem: TITLE.SUBTOTAL }); + this.textElement.push({ element: subtotalTitle, textItem: CART_PAGE_TITLE.SUBTOTAL }); return subtotalWrap; } + private createTotalDiscountTitle(): HTMLParagraphElement { + return createBaseElement({ + cssClasses: [styles.title], + innerContent: CART_PAGE_TITLE.COUPON_DISCOUNT[this.language], + tag: 'p', + }); + } + private createTotalHTML(): HTMLDivElement { const totalWrap = createBaseElement({ cssClasses: [styles.totalWrap], tag: 'div' }); const totalTitle = createBaseElement({ cssClasses: [styles.totalTitle], - innerContent: TITLE.TOTAL[this.language], + innerContent: CART_PAGE_TITLE.TOTAL[this.language], tag: 'p', }); totalWrap.append(totalTitle, this.total); - this.textElement.push({ element: totalTitle, textItem: TITLE.TOTAL }); + this.textElement.push({ element: totalTitle, textItem: CART_PAGE_TITLE.TOTAL }); return totalWrap; } private createWrapHTML(): HTMLDivElement { - const wrap = createBaseElement({ + return createBaseElement({ cssClasses: [styles.wrap], tag: 'div', }); - - return wrap; } public getCouponButton(): HTMLButtonElement { @@ -330,10 +325,7 @@ class CartPageView { } public renderCart(productsItem: ProductOrderModel[]): void { - this.productWrap.innerHTML = ''; - this.totalWrap.innerHTML = ''; - this.discountTotal.innerHTML = ''; - this.discountList.innerHTML = ''; + clearOutElement(this.productWrap, this.totalWrap, this.discountTotal, this.discountList); this.productWrap.classList.remove(styles.hide); this.totalWrap.classList.remove(styles.hide); this.empty.classList.add(styles.hide); @@ -345,10 +337,7 @@ class CartPageView { } public renderEmpty(): void { - this.productWrap.innerHTML = ''; - this.totalWrap.innerHTML = ''; - this.discountTotal.innerHTML = ''; - this.discountList.innerHTML = ''; + clearOutElement(this.productWrap, this.totalWrap, this.discountTotal, this.discountList); this.productWrap.classList.add(styles.hide); this.totalWrap.classList.add(styles.hide); this.empty.classList.remove(styles.hide); @@ -367,12 +356,12 @@ class CartPageView { } public updateTotal(cart: Cart): void { - this.discountTotal.innerHTML = ''; - this.discountList.innerHTML = ''; + clearOutElement(this.discountTotal, this.discountList); const totalDiscount = cart.discountsCart.reduce((acc, discount) => acc + discount.value, 0); const subTotal = cart.total + totalDiscount; this.subTotal.innerHTML = cartPrice(subTotal.toFixed(2)); this.total.innerHTML = cartPrice(cart.total.toFixed(2)); } } + export default CartPageView; diff --git a/src/pages/NotFoundPage/view/NotFoundPageView.ts b/src/pages/NotFoundPage/view/NotFoundPageView.ts index 2bae8a2a..fffbea6c 100644 --- a/src/pages/NotFoundPage/view/NotFoundPageView.ts +++ b/src/pages/NotFoundPage/view/NotFoundPageView.ts @@ -31,6 +31,8 @@ class NotFoundPageView { this.toMainButton = this.createToMainButton(); this.page = this.createHTML(); window.scrollTo(0, 0); + + this.observeStoreChanges(); } private createHTML(): HTMLDivElement { @@ -46,15 +48,11 @@ class NotFoundPageView { } private createPageDescription(): HTMLParagraphElement { - this.description = createBaseElement({ + return createBaseElement({ cssClasses: [styles.pageDescription], innerContent: PAGE_DESCRIPTION[getCurrentLanguage()][404], tag: 'p', }); - - observeCurrentLanguage(this.description, PAGE_DESCRIPTION, PAGE_DESCRIPTION_KEY[404]); - - return this.description; } private createPageLogo(): HTMLDivElement { @@ -66,21 +64,23 @@ class NotFoundPageView { } private createPageTitle(): HTMLHeadingElement { - this.title = createBaseElement({ + return createBaseElement({ cssClasses: [styles.pageTitle], innerContent: PAGE_DESCRIPTION_KEY[404], tag: 'h1', }); - return this.title; } private createToMainButton(): ButtonModel { - this.toMainButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.toMainButton], text: BUTTON_TEXT[getCurrentLanguage()].BACK_TO_MAIN, }); + } + + private observeStoreChanges(): void { + observeCurrentLanguage(this.description, PAGE_DESCRIPTION, PAGE_DESCRIPTION_KEY[404]); observeCurrentLanguage(this.toMainButton.getHTML(), BUTTON_TEXT, BUTTON_TEXT_KEY.BACK_TO_MAIN); - return this.toMainButton; } public getHTML(): HTMLDivElement { diff --git a/src/shared/Posts/posts.ts b/src/shared/Posts/posts.ts index 44689dde..639141ea 100644 --- a/src/shared/Posts/posts.ts +++ b/src/shared/Posts/posts.ts @@ -24,7 +24,7 @@ const postsData: Post[] = [ }, { content: { - en: `
What does watering my plants do?

Water provides structural support, cools your plant down, and moves minerals to all the right places.

Think of plant cells as water balloons. When they are filled with water, they become stiff, and your plant stands upright. When there is a lack of water, the cells deflate, and the plant looks wilted—a clear sign your plant needs more water if paired with dry potting mix. Plants also produce cellulose that help them keep their shape, but water pressure (water flowing through the plant) helps plants gain and retain their shape better than cellulose alone.

When you water your plant, an invisible process called transpiration occurs. The sun evaporates water from the leaves through their stomatal pores, causing water loss in the leaf. That’s great, because available water will go where it’s needed most. Ideally, the water is pulled up from the roots, but if the roots are dry, water is taken from the leaves themselves.

How often should I water my plants?

Much like different plants need varying amounts of light, different plants need varying amounts of water. To get a sense of how much water your plants might need, think of your houseplants’ natural environments: are they hot and dry, or rainy and tropical?

Desert natives like succulents like to stay dry and will benefit from less frequent waterings. Succulents come from hot arid environments, prefer to be watered less frequently than plants from tropical habitats, and have a physical characteristic that relates to their moisture-storing capacity. For example fleshy leaves, thick stems, or rhizomes. Some have shallow root systems, indicative of growing in places where rain is infrequent and rarely enough to soak deep into the ground. When you water succulent plants make sure their potting mix dries out completely afterward and wait a few weeks before watering again.

Unlike succulent plants, tropical plants like the Monstera deliciosa or Bird's Nest Fern are used to frequent rain showers in their natural environments. They did not adapt succulent characteristics to store water and tolerate drought. These leafy plants will thrive with more frequent waterings, about once a week or so.

How much should I water my plants?

In addition to the variety of the plant, the size will also determine how much water it needs. Potting soil is like a sponge. In smaller pots with less soil, the soil will dry out faster than in larger pots with lots of soil. If you have two of the same plant and one is larger than the other, one will need water more often than the other.

How to Water

Step 1: Check your potting soil to determine if it is dry. Most plants benefit from drying out completely between waterings; some moisture-loving plants like ferns can be watered again when the soil is mostly dry.

Step 2: If the soil is dry, fill a watering can or vessel with room temperature water. Some plants can be sensitive to tap water; try leaving your water out overnight before watering.

Step 3: Water the potting mix evenly around the plant. You want to saturate the soil but not create mud. Avoid splashing water onto your plant's foliage, which could cause fungal or bacterial spots. (Unless, of course, your plant is an epiphyte without soil.)

Step 4: Water up to one-fourth or one-third of the volume of your planter. For planters without a drainage hole, be especially mindful of how much water you're using. For planters with a drainage hole, water until you see excess water drain out of the bottom of the planter. You can let the water sit in the saucer or cache pot for 15-30 minutes, allowing the plant's roots to soak more up, then discard it.

Should I set a watering schedule?

We’re inclined to ‘stay hydrated’ but plants can drown if they are flooded with too much water. That’s what we call overwatering. If potting soil is left too wet for too long, your plant can start drooping leaves or get root rot. On the other hand, if your plant’s soil is consistently too dry, you’re likely underwatering.

So what should you do? Be flexible in your plant care habits. Don't stick to strict schedule—watering on exactly the same day every week may do more harm than good. Use that day to check in on your plants instead, watering only those that need it.

Pro tip: It is easier to add water to potting soil than to subtract it. If you're worried you might overwater your plants, err on the side of underwatering instead.

Do the seasons impact how much water my plants need?

The seasonal changes outside impact your plants' growth inside. During the summer growing season, the sun is stronger and out longer. Most houseplants, including succulents, will benefit from more frequent waterings. Succulents—that happily went a month without water while semi-dormant in the winter thanks to shorter days with less light—might need to be watered every week come summer. While tropical plants might need water twice a week, compared to every 1–2 weeks in winter.

What else should I know about watering houseplants?

There are some golden rules to keep in mind for watering your plants:

– Most houseplants prefer warm or tepid water over cold water, which can shock your plant. Warm water absorbs into soil best.

– Some houseplants are sensitive to tap water. Let water sit overnight for chlorine to dissipate before using.

– Plants in large planters dry out more slowly than plants in small planters because of the volume of potting soil.

– Try not to splash water onto your plant’s leaves when watering. Fun fact: Most tropical plants have waxy leaves because the rainfall in their natural environment, the rainforest, can be excessive. Waxy leaves helps water slide off and avoids risk of fungal infections.

– Expect to water plants more often in brighter light and less often in lower light, unless they are a drought-tolerant succulent.

– If you're afraid to overwater, look out for visible signs of thirst first, like wrinkling leaves for succulent plants or drooping stems for tropical plants, paired with dry potting soil.

`, + en: `
What does watering my plants do?

Water provides structural support, cools your plant down, and moves minerals to all the right places.

Think of plant cells as water balloons. When they are filled with water, they become stiff, and your plant stands upright. When there is a lack of water, the cells deflate, and the plant looks wilted—a clear sign your plant needs more water if paired with dry potting mix. Plants also produce cellulose that help them keep their shape, but water pressure (water flowing through the plant) helps plants gain and retain their shape better than cellulose alone.

When you water your plant, an invisible process called transpiration occurs. The sun evaporates water from the leaves through their stomatal pores, causing water loss in the leaf. That’s great, because available water will go where it’s needed most. Ideally, the water is pulled up from the roots, but if the roots are dry, water is taken from the leaves themselves.

How often should I water my plants?

Much like different plants need varying amounts of light, different plants need varying amounts of water. To get a sense of how much water your plants might need, think of your houseplants’ natural environments: are they hot and dry, or rainy and tropical?

Desert natives like succulents like to stay dry and will benefit from less frequent waterings. Succulents come from hot arid environments, prefer to be watered less frequently than plants from tropical habitats, and have a physical characteristic that relates to their moisture-storing capacity. For example, fleshy leaves, thick stems, or rhizomes. Some have shallow root systems, indicative of growing in places where rain is infrequent and rarely enough to soak deep into the ground. When you water succulent plants make sure their potting mix dries out completely afterward and wait a few weeks before watering again.

Unlike succulent plants, tropical plants like the Monstera deliciosa or Bird's Nest Fern are used to frequent rain showers in their natural environments. They did not adapt succulent characteristics to store water and tolerate drought. These leafy plants will thrive with more frequent waterings, about once a week or so.

How much should I water my plants?

In addition to the variety of the plant, the size will also determine how much water it needs. Potting soil is like a sponge. In smaller pots with less soil, the soil will dry out faster than in larger pots with lots of soil. If you have two of the same plant and one is larger than the other, one will need water more often than the other.

How to Water

Step 1: Check your potting soil to determine if it is dry. Most plants benefit from drying out completely between waterings; some moisture-loving plants like ferns can be watered again when the soil is mostly dry.

Step 2: If the soil is dry, fill a watering can or vessel with room temperature water. Some plants can be sensitive to tap water; try leaving your water out overnight before watering.

Step 3: Water the potting mix evenly around the plant. You want to saturate the soil but not create mud. Avoid splashing water onto your plant's foliage, which could cause fungal or bacterial spots. (Unless, of course, your plant is an epiphyte without soil.)

Step 4: Water up to one-fourth or one-third of the volume of your planter. For planters without a drainage hole, be especially mindful of how much water you're using. For planters with a drainage hole, water until you see excess water drain out of the bottom of the planter. You can let the water sit in the saucer or cache pot for 15-30 minutes, allowing the plant's roots to soak more up, then discard it.

Should I set a watering schedule?

We’re inclined to ‘stay hydrated’ but plants can drown if they are flooded with too much water. That’s what we call overwatering. If potting soil is left too wet for too long, your plant can start drooping leaves or get root rot. On the other hand, if your plant’s soil is consistently too dry, you’re likely underwatering.

So, what should you do? Be flexible in your plant care habits. Don't stick to a strict schedule — watering on exactly the same day every week may do more harm than good. Use that day to check in on your plants instead, watering only those that need it.

Pro tip: It is easier to add water to potting soil than to subtract it. If you're worried you might overwater your plants, err on the side of underwatering instead.

Do the seasons impact how much water my plants need?

The seasonal changes outside impact your plants' growth inside. During the summer growing season, the sun is stronger and out longer. Most houseplants, including succulents, will benefit from more frequent waterings. Succulents—that happily went a month without water while semi-dormant in the winter thanks to shorter days with less light—might need to be watered every week come summer. While tropical plants might need water twice a week, compared to every 1–2 weeks in winter.

What else should I know about watering houseplants?

There are some golden rules to keep in mind for watering your plants:

– Most houseplants prefer warm or tepid water over cold water, which can shock your plant. Warm water absorbs into soil best.

– Some houseplants are sensitive to tap water. Let water sit overnight for chlorine to dissipate before using.

– Plants in large planters dry out more slowly than plants in small planters because of the volume of potting soil.

– Try not to splash water onto your plant’s leaves when watering. Fun fact: Most tropical plants have waxy leaves because the rainfall in their natural environment, the rainforest, can be excessive. Waxy leaves help water slide off and avoid risk of fungal infections.

– Expect to water plants more often in brighter light and less often in lower light, unless they are a drought-tolerant succulent.

– If you're afraid to overwater, look out for visible signs of thirst first, like wrinkling leaves for succulent plants or drooping stems for tropical plants, paired with dry potting soil.

`, ru: `
Что делает полив моих растений?

Вода обеспечивает структурную поддержку, охлаждает ваше растение и перемещает минералы в нужные места.

Представьте клетки растения как водяные шарики. Когда они наполнены водой, они становятся жесткими, и ваше растение держится прямо. Когда воды не хватает, клетки опускаются, и растение выглядит вялым—явный признак того, что растению нужна больше воды, особенно если почвенная смесь сухая. Растения также производят целлюлозу, которая помогает им сохранять форму, но давление воды (протекающая вода через растение) помогает растениям лучше удерживать и поддерживать форму, чем только целлюлоза.

Когда вы поливаете свое растение, происходит невидимый процесс, называемый транспирацией. Солнце испаряет воду с листьев через их устьица, вызывая потерю влаги в листьях. Это замечательно, потому что доступная вода будет перемещаться туда, где она нужна больше всего. Идеально, вода тянется из корней, но если корни сухие, вода берется из самих листьев.

Как часто мне следует поливать свои растения?

Точно так же, как разные растения нуждаются в разном количестве света, разные растения нуждаются в разном количестве воды. Чтобы понять, сколько воды могут нужно ваши растения, обратитесь к естественной среде обитания ваших комнатных растений: они находятся в жарком и сухом месте или в дождливом тропическом?

Как суккуленты, происходящие из горячих аридных сред, предпочитают оставаться сухими и будут выигрывать от менее частых поливов. Суккуленты происходят из жарких аридных мест, предпочитают быть поливаемыми реже, чем растения из тропических местообитаний, и имеют физические особенности, связанные с их способностью к накоплению влаги. Например, мясистые листья, толстые стебли или клубни. У некоторых есть поверхностные корни, указывающие на рост в местах, где дождь редкий и редко проникает глубоко в почву. После полива суккулентов убедитесь, что почвенная смесь полностью высохла, прежде чем поливать снова через несколько недель.

В отличие от суккулентов, тропические растения, такие как Monstera deliciosa или папоротник птичье гнездо, привыкли к частым дождевым ливням в своих природных средах обитания. Они не приспособились к суккулентным характеристикам для накопления воды и терпят засушливость. Эти листовые растения будут процветать с более частыми поливами, примерно раз в неделю.

Сколько воды нужно моим растениям?

Помимо разнообразия растений, их размер также определит, сколько воды им нужно. Почвенная смесь похожа на губку. В меньших горшках с меньшим количеством почвы почва будет быстрее высыхать, чем в больших горшках с большим количеством почвы. Если у вас два одинаковых растения, а одно из них больше другого, одно будет нуждаться в поливе чаще, чем другое.

Как поливать

Шаг 1: Проверьте свою почвенную смесь, чтобы определить, она ли сухая. Большинству растений выгодно полностью высыхать между поливами; некоторые растения, любящие влагу, такие как папоротники, можно поливать снова, когда почвенная смесь почти высохла.

Шаг 2: Если почва сухая, возьмите кувшин или другой сосуд с водой комнатной температуры. Некоторые растения могут быть чувствительны к водопроводной воде; попробуйте оставить воду на ночь перед поливом.

Шаг 3: Равномерно полейте почвенную смесь вокруг растения. Вы хотите насытить почву, но не создавать грязь. Избегайте попадания влаги на листву растения, что может вызвать грибковые или бактериальные пятна. (За исключением, конечно, ваше растение эпифит без почвы.)

Шаг 4: Поливайте до одной четверти или трети объема вашего горшка. Для горшков без отверстий для стока особенно важно следить за тем, сколько воды вы используете. Для горшков с отверстием для стока поливайте до тех пор, пока из нижней части горшка не вытечет лишняя вода. Вы можете оставить воду в поддоне или кэш-поте на 15-30 минут, чтобы корни растения впитали больше, а затем вылейте ее.

Следует ли мне устанавливать график полива?

Мы склонны 'держать себя в гидратации', но растения могут задохнуться, если их затопить слишком много воды. Это то, что мы называем переувлажнением. Если почвенная смесь остается слишком мокрой слишком долго, у вашего растения могут начаться опадающие листья или гниль корней. С другой стороны, если почва вашего растения постоянно слишком сухая, вероятно, вы недополиваете.

Что же вам делать? Будьте гибкими в своих привычках по уходу за растениями. Не придерживайтесь строгого расписания—поливая в точно один и тот же день каждую неделю, вы можете причинить больше вреда, чем пользы. Используйте этот день, чтобы проверить свои растения, поливая только те, которым это нужно.

Подсказка профессионала: легче добавить воды в почву, чем откачивать ее. Если вы боитесь переполива, лучше недополивайте.

Влияют ли сезоны на потребность моих растений в воде?

Сезонные изменения на улице влияют на рост ваших растений в помещении. В течение летнего сезона роста, солнце сильнее и дольше на улице. Большинству комнатных растений, включая суккуленты, будет полезнее более частое поливание. Суккуленты, которые счастливо обходились без воды целый месяц во время полуспящего состояния зимой благодаря коротким дням с меньшим светом, могут потребовать полива раз в неделю летом. В то время как тропические растения могут требовать полива дважды в неделю, в сравнении с раз в 1-2 недели зимой.

Что еще я должен знать о поливе комнатных растений?

Существуют некоторые золотые правила, которые стоит иметь в виду при поливе ваших растений:

– Большинство комнатных растений предпочитают теплую или теплую воду перед холодной водой, которая может шокировать ваше растение. Теплая вода лучше всего впитывается в почву.

– Некоторые комнатные растения чувствительны к водопроводной воде. Оставьте воду на ночь, чтобы хлор успел испариться, прежде чем поливать.

– Растения в больших горшках высыхают медленнее, чем растения в маленьких горшках из-за объема почвы.

– При поливе старайтесь не попадать водой на листья растения. Интересный факт: большинство тропических растений имеют восковые листья из-за чрезмерных осадков в их естественной среде обитания, тропическом лесу. Восковые листья помогают воде стекать и предотвращают риск грибковых инфекций.

– Ожидайте, что растения потребуют более частого полива при ярком освещении и менее частого при низком освещении, если они не являются засухоустойчивыми суккулентами.

– Если вы боитесь переполива, обращайте внимание на видимые признаки жажды, например, морщинистые листья для суккулентных растений или опущенные стебли для тропических растений, в сочетании с сухой почвой.

`, }, date: { @@ -34,7 +34,7 @@ const postsData: Post[] = [ id: 'bl-post-02', image: 'img/webp/bl-post-02.webp', shortDescription: { - en: 'Water is amazing. Made up of hydrogen and oxygen, it’s literally responsible for all life on Earth. Watering your plant is a no-brainer, but how much and how often can be more tricky to tell. Luckily, we have a few ideas on watering for optimum plant health.', + en: 'Water is amazing. Made up of hydrogen and oxygen, it’s literally responsible for all life on Earth. Watering your plant is a no-brainer, but how much and how often can be trickier to tell. Luckily, we have a few ideas on watering for optimum plant health.', ru: 'Вода - удивительное явление. Состоящая из водорода и кислорода, она буквально отвечает за все живое на Земле. Поливать растение - дело нехитрое, но вот сколько и как часто - это уже сложнее. К счастью, у нас есть несколько идей по поводу полива для оптимального здоровья растений.', }, time: 6, @@ -45,8 +45,8 @@ const postsData: Post[] = [ }, { content: { - en: `

Whether you’ll be spending a long weekend at the beach or a full month abroad, we’re sharing our top tips and tricks for keeping your houseplants happy and healthy while you’re away.

It only takes a little bit of time to prep your plants so you can focus on more important things, like strong sunscreen and a good book!

Tips to Keep Plants Alive While You’re Away

1. Tweak light and temperature

The more sunlight your plant receives, the more thirsty it will be over time. This is for a few reasons, the biggest being that plants utilize the most water during a process called transpiration, and the rate of transpiration is dependent on, and increases with, the amount of sunlight the plant receives.

So the more natural light your plant is getting, the more water it’ll need. To help your plants from wilting while you’re away from lack of water, you can move them a little bit further away from their source of natural light. Place them in the middle of the room so that the heat and light from the windows does not dry them out as fast as usual. Once you return, you can move your plants back to their usual spot. If you don’t want to relocate plants, you can also draw a sheer curtain over the window.

If your plants were not receiving plenty of light to begin with, due to obstructed windows or the season, you can decide to keep your plants where they are. A good way to determine is to ask yourself how often you have to water a plantif it's every week, you might want to adjust its placement if you’ll be gone for a longer period of time. But if it's every other week, you may find no need to move them.

And as always—whether you’re home or away—never leave an air conditioning or heating system blasting on or near a houseplant. Although a luxury for humans, A/Cs and heaters tends to rob your indoor environment of the humidity most tropical plants crave.

2. Maintain moisture

If you plan to be away for a week or less, watering your plants thoroughly before departure will be sufficient. Make sure you are only watering plants with dry or mostly dry potting soil. Let any excess water drain from your potted plant before you’re on your way, so the potting soil is moist but your plants are not sitting in a saucer of water, which could attract pests or lead to root rot.

Note this is only necessary for plants that need to be watered once a week or more. Drought-tolerant houseplants, like succulents and cacti, will be fine for a week or two without water. And during the winter months, when plant growth slows and some plants go dormant, you may skip watering them altogether.

If you plan to be away for more than a full week, there are a couple of ways to prepare your plants. Try one of the tips below or a combination—depending on the length of your trip, the variety of plant, and the time of year.

Continue to keep in mind: how often do I usually water this plant during this time? Since you won’t be home to keep an eye on your plants, you want to avoid overwatering them before you go!

1. Add lava rocks, mulch, or wood chips to the top of your plant’s soil to help hold moisture before or after giving dry soil a good soaking. Damp newspaper can also do the trick. This will help the soil stay moist for longer.

2. Water your plant thoroughly and then cover with a clear plastic bag to just below the lip of the planter, creating a makeshift greenhouse. Make sure to cut a couple slits in the plastic to allow for ample air circulation... plants need to breathe, too! Use sticks (or leftover chopsticks) to hold the bag up and away from the foliage. You want to make sure no foliage is touching the bag.

3. Line a shallow tray with small rocks and fill the tray up with water to slightly beneath the top of the rocks. Set your planter on top of the rocks—the base of the planter should not be touching or sitting directly in the idle water but right above it. This will help to increase humidity and moisture levels, but should not lead to over-watering or root rot.

4. Transport your humidity-loving plants, like ferns and air plants, to your bathroom (provided you have a window that receives some natural light) or another small room and group them together. The smaller the room, the easier it is for your plants to maintain humidity and moisture.

5. DIY a self-watering system with capillary wicks or empty bottles:

– Submerge one end of the capillary wick in a basin of water (choose the size of the water container based on how long you’ll be away for) and the other end of the wick into your plant’s potting mix. Your plant will pull the water it needs through the wick while you're away. (This is our team's preferred method for extended periods of time away from our plants.)

– Upcycle old plastic or glass bottles by filling the bottle with water and puncturing the bottle top. Make sure the hole is small enough that water will be released slowly, over time. Flip your filled bottle upside down and stick the top of the bottle, with the punctured bottle top, deep into your plant’s potting soil.

6. Call on a friend. If you’re going to be away for an extended period of time (over a month) and have a friend that’s willing to water your houseplants for you—take them up on the offer! Leave your friend with clear written instructions, or walk them through your care routine a week or two beforehand. We won’t judge if you ask them for photo updates while you’re gone... Just make sure to bring them back a souvenir (or send them a new plant as a thank you when you return.)

3. Forgo the fertilizer

If you occasionally use fertilizer, make sure to hold off on fertilizing your houseplants until you return from your trip. Do not fertilize your plants in the weeks prior to your departure. You’ll want your plants to grow as slowly as possible while you’re away, which will help your plants conserve energy and water.

4. Do some light pruning

In addition to pruning off any dead, dying, or unhealthy-looking foliage, you can prune off any buds and flowers, which usually require more frequent waterings to stay healthy.

Pro tip: The tricks above, in particular ways to "water" while away, mostly apply to tropical plants. When it comes to drought-tolerant plants like varieties of succulents, ZZ plants, or snake plants, they can go over a month without water, especially if placed out of direct light. If you’re an avid traveler, succulent plants are the houseplants for you.

Whatever preparation you take, give yourself a big pat on the back when you return to happy and healthy houseplants. They missed you, too.

`, - ru: `

Будь то длительные выходные на пляже или полный месяц за границей, мы делимся нашими лучшими советами и хитростями по уходу за комнатными растениями, чтобы они оставались счастливыми и здоровыми, пока вы отсутствуете.

За подготовку растений требуется всего немного времени, чтобы вы могли сконцентрироваться на более важных вещах, таких как сильный солнцезащитный крем и хорошая книга!

Tips to Keep Plants Alive While You’re Away

1. Регулируйте освещение и температуру

Чем больше солнечного света получает ваше растение, тем больше оно будет испытывать жажду со временем. Это объясняется несколькими причинами, главная из которых состоит в том, что растения используют больше воды в процессе транспирации, и скорость транспирации зависит от количества солнечного света, которое получает растение.

Чем больше естественного света получает ваше растение, тем больше воды ему потребуется. Чтобы помочь вашим растениям избежать засыхания из-за недостатка воды во время вашего отсутствия, вы можете переместить их немного дальше от источника естественного света. Поместите их посередине комнаты, чтобы тепло и свет от окон не высушили их так быстро, как обычно. По возвращении вы можете вернуть растения на прежнее место. Если вы не хотите перемещать растения, вы также можете опустить тонкую занавеску на окно.

Если ваши растения изначально не получали достаточно света из-за загороженных окон или времени года, вы можете решить оставить их на месте. Хорошим способом определить, стоит ли переместить растение, является вопрос о том, как часто вы обычно поливаете растение — если каждую неделю, вам может потребоваться изменить его расположение, если вы уезжаете надолго. Но если вы поливаете его раз в две недели, то, возможно, перемещать его не требуется.

И как всегда — будь то дома или вдали — никогда не оставляйте включенным кондиционер или отопление рядом с комнатными растениями. Хотя это роскошь для людей, кондиционеры и обогреватели часто уменьшают влажность воздуха в помещении, которую большинство тропических растений так нуждаются.

2. Сохраняйте влажность

Если вы планируете отсутствовать неделю или менее, обильное поливание ваших растений перед отъездом будет достаточным. Убедитесь, что поливаете только растения с сухой или в основном сухой почвой. Дайте стечь лишней воде из вашего цветочного горшка перед отправлением, чтобы почва была влажной, но ваши растения не стояли в поддоне с водой, что может привлечь вредителей или привести к гниению корней.

Это необходимо только для растений, которые нужно поливать раз в неделю или чаще. Тропические комнатные растения, устойчивые к засухе, такие как суккуленты и кактусы, продержатся неделю или две без воды. А зимой, когда растения перестают активно расти и некоторые засыпают, поливать их можно пропустить вообще.

Если вы планируете отсутствовать более недели, есть несколько способов подготовить ваши растения. Попробуйте один из нижеперечисленных советов или их комбинацию — в зависимости от продолжительности вашей поездки, разнообразия растений и времени года.

Продолжайте помнить: как часто я обычно поливаю это растение в это время? Поскольку вы не будете дома, чтобы следить за своими растениями, вам нужно избегать их переувлажнения перед отъездом!

1. Добавьте лавовые камни, мульчу или древесные опилки на верхнюю часть почвы вашего растения, чтобы сохранить влагу. Сырая газета тоже подойдет. Это поможет сохранить влажность почвы на дольше.

2. Обильно полейте растение и затем накройте его прозрачным полиэтиленовым мешком немного ниже края горшка, создавая импровизированную теплицу. Обязательно сделайте несколько прорезей в пленке для обеспечения достаточной циркуляции воздуха... растения тоже нужно дышать! Используйте палки (или оставшиеся палочки для суши) для поддержания мешка на расстоянии от листвы. Убедитесь, что ни один лист не касается пленки.

3. Выложите неглубокую подставку мелкими камнями и наполните ее водой чуть ниже верхнего уровня камней. Поставьте ваш горшок на камни — дно горшка не должно касаться воды, но находиться чуть выше нее. Это поможет повысить уровень влажности и влажность, но не приведет к переувлажнению или гниению корней.

4. Перенесите свои растения, любящие влажность, такие как папоротники и воздушные растения, в ванную комнату (при наличии окна, получающего естественный свет) или другое небольшое помещение и сгруппируйте их вместе. Чем меньше помещение, тем проще растениям поддерживать влажность и уровень влажности.

5. Сделайте самостоятельную систему автоматического полива с помощью капиллярных фитилей или пустых бутылок:

– Погрузите один конец капиллярного фитиля в бассейн с водой (выберите размер контейнера с водой в зависимости от того, насколько долго вы будете отсутствовать), а другой конец фитиля — в почву вашего растения. Растение будет тянуть воду через фитиль, пока вы будете в отъезде. (Это предпочтительный метод нашей команды для долгих периодов отсутствия у растений.)

– Переработайте старые пластиковые или стеклянные бутылки, наполнив их водой и прокололи верхнюю часть. Убедитесь, что отверстие достаточно маленькое, чтобы вода выходила медленно, постепенно. Переверните заполненную бутылку вверх дном и утопите ее верхнюю часть с проколотой крышкой глубоко в почву вашего растения.

6. Попросите помощи друга. Если вы планируете отсутствовать продолжительное время (более месяца) и у вас есть друг, который согласен поливать ваши комнатные растения — воспользуйтесь его предложением! Оставьте другу четкие письменные инструкции или проведите с ним инструктаж за неделю или две до отъезда. Не стесняйтесь попросить его делать фотоотчеты во время вашего отсутствия... Просто не забудьте привезти ему сувенир (или подарите новое растение) в знак благодарности, когда вернетесь.

3. Откажитесь от удобрений

Если вы иногда используете удобрения, убедитесь, что отложили их на время отсутствия. Не удобряйте растения за недели до вашего отъезда. Вы хотите, чтобы ваши растения росли как можно медленнее, пока вы отсутствуете, что поможет им сберечь энергию и воду.

4. Проведите легкую обрезку

Помимо удаления мертвых, умирающих или нездорово выглядящих листьев, вы можете убрать почки и цветы, которые обычно требуют более частого полива, чтобы оставаться здоровыми.

Совет: Описанные выше хитрости, особенно способы "полива" во время отсутствия, в основном применяются к тропическим растениям. Когда дело доходит до растений, устойчивых к засухе, таких как разные виды суккулентов, растений ZZ или декоративных сансевьерий, они могут продержаться более месяца без воды, особенно если стоят в тени. Если вы страстный путешественник, суккуленты — это ваш выбор для комнатных растений.

Какими бы приготовлениями вы ни занялись, похвалите себя, когда вернетесь к счастливым и здоровым комнатным растениям. Они тоже скучали по вам.

`, + en: `

Whether you’ll be spending a long weekend at the beach or a full month abroad, we’re sharing our top tips and tricks for keeping your houseplants happy and healthy while you’re away.

It only takes a little bit of time to prep your plants so you can focus on more important things, like strong sunscreen and a good book!

Tips to Keep Plants Alive While You’re Away

1. Tweak light and temperature

The more sunlight your plant receives, the thirstier it will be over time. This is for a few reasons, the biggest being that plants utilize the most water during a process called transpiration, and the rate of transpiration is dependent on, and increases with, the amount of sunlight the plant receives.

So, the more natural light your plant is getting, the more water it’ll need. To help your plants from wilting while you’re away from lack of water, you can move them a little bit further away from their source of natural light. Place them in the middle of the room so that the heat and light from the windows does not dry them out as fast as usual. Once you return, you can move your plants back to their usual spot. If you don’t want to relocate plants, you can also draw a sheer curtain over the window.

If your plants were not receiving plenty of light to begin with, due to obstructed windows or the season, you can decide to keep your plants where they are. A good way to determine is to ask yourself how often you have to water a plantif it's every week, you might want to adjust its placement if you’ll be gone for a longer period of time. But if it's every other week, you may find no need to move them.

And as always—whether you’re home or away—never leave an air conditioning or heating system blasting on or near a houseplant. Although a luxury for humans, A/Cs and heaters tends to rob your indoor environment of the humidity most tropical plants crave.

2. Maintain moisture

If you plan to be away for a week or less, watering your plants thoroughly before departure will be sufficient. Make sure you are only watering plants with dry or mostly dry potting soil. Let any excess water drain from your potted plant before you’re on your way, so the potting soil is moist, but your plants are not sitting in a saucer of water, which could attract pests or lead to root rot.

Note this is only necessary for plants that need to be watered once a week or more. Drought-tolerant houseplants, like succulents and cacti, will be fine for a week or two without water. And during the winter months, when plant growth slows and some plants go dormant, you may skip watering them altogether.

If you plan to be away for more than a full week, there are a couple of ways to prepare your plants. Try one of the tips below or a combination—depending on the length of your trip, the variety of a plant, and the time of year.

Continue to keep in mind: how often do I usually water this plant during this time? Since you won’t be home to keep an eye on your plants, you want to avoid overwatering them before you go!

1. Add lava rocks, mulch, or wood chips to the top of your plant’s soil to help hold moisture before or after giving dry soil a good soaking. Damp newspaper can also do the trick. This will help the soil stay moist for longer.

2. Water your plant thoroughly and then cover it with a clear plastic bag to just below the lip of the planter, creating a makeshift greenhouse. Make sure to cut a couple slits in the plastic to allow for ample air circulation... plants need to breathe, too! Use sticks (or leftover chopsticks) to hold the bag up and away from the foliage. You want to make sure no foliage is touching the bag.

3. Line a shallow tray with small rocks and fill the tray up with water to slightly beneath the top of the rocks. Set your planter on top of the rocks—the base of the planter should not be touching or sitting directly in the idle water but right above it. This will help to increase humidity and moisture levels, but should not lead to over-watering or root rot.

4. Transport your humidity-loving plants, like ferns and air plants, to your bathroom (provided you have a window that receives some natural light) or another small room and group them together. The smaller the room, the easier it is for your plants to maintain humidity and moisture.

5. DIY a self-watering system with capillary wicks or empty bottles:

– Submerge one end of the capillary wick in a basin of water (choose the size of the water container based on how long you’ll be away for) and the other end of the wick into your plant’s potting mix. Your plant will pull the water it needs through the wick while you're away. (This is our team's preferred method for extended periods of time away from our plants.)

– Upcycle old plastic or glass bottles by filling the bottle with water and puncturing the bottle top. Make sure the hole is small enough that water will be released slowly, over time. Flip your filled bottle upside down and stick the top of the bottle, with the punctured bottle top, deep into your plant’s potting soil.

6. Call on a friend. If you’re going to be away for an extended period of time (over a month) and have a friend that’s willing to water your houseplants for you—take them up on the offer! Leave your friend with clear written instructions or walk them through your care routine a week or two beforehand. We won’t judge if you ask them for photo updates while you’re gone... Just make sure to bring them back a souvenir (or send them a new plant as a thank you when you return.)

3. Forgo the fertilizer

If you occasionally use fertilizer, make sure to hold off on fertilizing your houseplants until you return from your trip. Do not fertilize your plants in the weeks prior to your departure. You’ll want your plants to grow as slowly as possible while you’re away, which will help your plants conserve energy and water.

4. Do some light pruning

In addition to pruning off any dead, dying, or unhealthy-looking foliage, you can prune off any buds and flowers, which usually require more frequent waterings to stay healthy.

Pro tip: The tricks above, in particular ways to "water" while away, mostly apply to tropical plants. When it comes to drought-tolerant plants like varieties of succulents, ZZ plants, or snake plants, they can go over a month without water, especially if placed out of direct light. If you’re an avid traveler, succulent plants are the houseplants for you.

Whatever preparation you take, give yourself a big pat on the back when you return to happy and healthy houseplants. They missed you, too.

`, + ru: `

Будь то длительные выходные на пляже или полный месяц за границей, мы делимся нашими лучшими советами и хитростями по уходу за комнатными растениями, чтобы они оставались счастливыми и здоровыми, пока вы отсутствуете.

За подготовку растений требуется всего немного времени, чтобы вы могли сконцентрироваться на более важных вещах, таких как сильный солнцезащитный крем и хорошая книга!

Советы по уходу за растениями во время вашего отсутствия

1. Регулируйте освещение и температуру

Чем больше солнечного света получает ваше растение, тем больше оно будет испытывать жажду со временем. Это объясняется несколькими причинами, главная из которых состоит в том, что растения используют больше воды в процессе транспирации, и скорость транспирации зависит от количества солнечного света, которое получает растение.

Чем больше естественного света получает ваше растение, тем больше воды ему потребуется. Чтобы помочь вашим растениям избежать засыхания из-за недостатка воды во время вашего отсутствия, вы можете переместить их немного дальше от источника естественного света. Поместите их посередине комнаты, чтобы тепло и свет от окон не высушили их так быстро, как обычно. По возвращении вы можете вернуть растения на прежнее место. Если вы не хотите перемещать растения, вы также можете опустить тонкую занавеску на окно.

Если ваши растения изначально не получали достаточно света из-за загороженных окон или времени года, вы можете решить оставить их на месте. Хорошим способом определить, стоит ли переместить растение, является вопрос о том, как часто вы обычно поливаете растение — если каждую неделю, вам может потребоваться изменить его расположение, если вы уезжаете надолго. Но если вы поливаете его раз в две недели, то, возможно, перемещать его не требуется.

И как всегда — будь то дома или вдали — никогда не оставляйте включенным кондиционер или отопление рядом с комнатными растениями. Хотя это роскошь для людей, кондиционеры и обогреватели часто уменьшают влажность воздуха в помещении, которую большинство тропических растений так нуждаются.

2. Сохраняйте влажность

Если вы планируете отсутствовать неделю или менее, обильное поливание ваших растений перед отъездом будет достаточным. Убедитесь, что поливаете только растения с сухой или в основном сухой почвой. Дайте стечь лишней воде из вашего цветочного горшка перед отправлением, чтобы почва была влажной, но ваши растения не стояли в поддоне с водой, что может привлечь вредителей или привести к гниению корней.

Это необходимо только для растений, которые нужно поливать раз в неделю или чаще. Тропические комнатные растения, устойчивые к засухе, такие как суккуленты и кактусы, продержатся неделю или две без воды. А зимой, когда растения перестают активно расти и некоторые засыпают, поливать их можно пропустить вообще.

Если вы планируете отсутствовать более недели, есть несколько способов подготовить ваши растения. Попробуйте один из нижеперечисленных советов или их комбинацию — в зависимости от продолжительности вашей поездки, разнообразия растений и времени года.

Продолжайте помнить: как часто я обычно поливаю это растение в это время? Поскольку вы не будете дома, чтобы следить за своими растениями, вам нужно избегать их переувлажнения перед отъездом!

1. Добавьте лавовые камни, мульчу или древесные опилки на верхнюю часть почвы вашего растения, чтобы сохранить влагу. Сырая газета тоже подойдет. Это поможет сохранить влажность почвы на дольше.

2. Обильно полейте растение и затем накройте его прозрачным полиэтиленовым мешком немного ниже края горшка, создавая импровизированную теплицу. Обязательно сделайте несколько прорезей в пленке для обеспечения достаточной циркуляции воздуха... растения тоже нужно дышать! Используйте палки (или оставшиеся палочки для суши) для поддержания мешка на расстоянии от листвы. Убедитесь, что ни один лист не касается пленки.

3. Выложите неглубокую подставку мелкими камнями и наполните ее водой чуть ниже верхнего уровня камней. Поставьте ваш горшок на камни — дно горшка не должно касаться воды, но находиться чуть выше нее. Это поможет повысить уровень влажности и влажность, но не приведет к переувлажнению или гниению корней.

4. Перенесите свои растения, любящие влажность, такие как папоротники и воздушные растения, в ванную комнату (при наличии окна, получающего естественный свет) или другое небольшое помещение и сгруппируйте их вместе. Чем меньше помещение, тем проще растениям поддерживать влажность и уровень влажности.

5. Сделайте самостоятельную систему автоматического полива с помощью капиллярных фитилей или пустых бутылок:

– Погрузите один конец капиллярного фитиля в бассейн с водой (выберите размер контейнера с водой в зависимости от того, насколько долго вы будете отсутствовать), а другой конец фитиля — в почву вашего растения. Растение будет тянуть воду через фитиль, пока вы будете в отъезде. (Это предпочтительный метод нашей команды для долгих периодов отсутствия у растений.)

– Переработайте старые пластиковые или стеклянные бутылки, наполнив их водой и прокололи верхнюю часть. Убедитесь, что отверстие достаточно маленькое, чтобы вода выходила медленно, постепенно. Переверните заполненную бутылку вверх дном и утопите ее верхнюю часть с проколотой крышкой глубоко в почву вашего растения.

6. Попросите помощи друга. Если вы планируете отсутствовать продолжительное время (более месяца) и у вас есть друг, который согласен поливать ваши комнатные растения — воспользуйтесь его предложением! Оставьте другу четкие письменные инструкции или проведите с ним инструктаж за неделю или две до отъезда. Не стесняйтесь попросить его делать фотоотчеты во время вашего отсутствия... Просто не забудьте привезти ему сувенир (или подарите новое растение) в знак благодарности, когда вернетесь.

3. Откажитесь от удобрений

Если вы иногда используете удобрения, убедитесь, что отложили их на время отсутствия. Не удобряйте растения за недели до вашего отъезда. Вы хотите, чтобы ваши растения росли как можно медленнее, пока вы отсутствуете, что поможет им сберечь энергию и воду.

4. Проведите легкую обрезку

Помимо удаления мертвых, умирающих или нездорово выглядящих листьев, вы можете убрать почки и цветы, которые обычно требуют более частого полива, чтобы оставаться здоровыми.

Совет: Описанные выше хитрости, особенно способы "полива" во время отсутствия, в основном применяются к тропическим растениям. Когда дело доходит до растений, устойчивых к засухе, таких как разные виды суккулентов, растений ZZ или декоративных сансевьерий, они могут продержаться более месяца без воды, особенно если стоят в тени. Если вы страстный путешественник, суккуленты — это ваш выбор для комнатных растений.

Какими бы приготовлениями вы ни занялись, похвалите себя, когда вернетесь к счастливым и здоровым комнатным растениям. Они тоже скучали по вам.

`, }, date: { en: 'September 20', @@ -60,14 +60,14 @@ const postsData: Post[] = [ }, time: 4, title: { - en: 'How To Keep Your Plants Alive While On Vacation', + en: 'How To Keep Your Plants Alive While on Vacation', ru: 'Как сохранить растения живыми во время отпуска', }, }, { content: { - en: `

Why Do Leaves Turn Yellow?

Yellow leaves on plants mean different things depending on the variety, and what other symptoms the plant is showing. Overwatering, underwatering, mineral deficiency, temperature stress, and so on can all be the cause. Identifying the specific symptoms your plant is showing can help you determine the cause and take appropriate action.

How to Fix Yellow Leaves

Below, we go into the solution to get rid of yellowing leaves by first identifying the symptoms displayed by the plant which can help pinpoint the cause.

Leaves that are Yellow, Curling, and Drooping

If you notice your plant has yellow leaves that are curling inwards and the soil is dry to the touch, it's likely under-watered. You might also see older leaves falling off. To fix this, the solution is to water your plant.

Yellow Leaves Fading to Green or Turning Bright Yellow

Are the leaves turning bright yellow and is the soil wet? You might even notice blackened stem bases or fungus gnats. This is a sign of overwatering. You can correct this by letting the soil dry out or repotting the plant in dry soil.

Irregular Yellow Spots or Leaf Deformities

Irregular yellowing with potential leaf deformities is usually caused either by a pest or a mineral deficiency. If no pests are visible, then this is likely caused by a mineral deficiency, usually calcium or boron. The solution is to fertilize once a month, or repot your plant to provide fresh potting soil. Fresh potting soil contains new nutrients.

Whole Plant Yellowing (May or May Not Drop Leaves)

Most likely a temperature issue — it’s either too cold or too hot for your plant where it is placed. This will usually be a more pale yellow or whitish yellow. Temperature will flux around the plant too much or will be obvious, like a radiator or a draft. It could also be a fertilizer issue. If no obvious temperature causes are present and the soil seems normal, try a little fertilizer.

Whole Plant Semi-Yellowing (Without Leaf Drop)

A “general malaise” of a plant turning yellow means that it’s either pot-bound—the roots have no room to expand—or your plant is in the early stages of a fertilizer deficiency. The solution is to repot to a bigger pot, or try a little fertilizer.

Only Mature Leaves are Turning Yellow

As plants mature and grow, older leaves can age-out, start to yellow, and eventually fall from your plant. This is natural leaf shedding. If your plant is happy and healthy otherwise, and only older, mature leaves are yellowing and dropping, there is no need to worry!

`, - ru: `

Почему листья становятся желтыми?

Желтые листья на растениях могут означать разные вещи в зависимости от их вида и других симптомов, которые проявляет растение. Переизбыток полива, недостаток полива, дефицит минералов, стресс от температуры и так далее могут быть причиной. Определение конкретных симптомов, которые проявляет ваше растение, поможет вам определить причину и принять соответствующие меры.

Как исправить желтые листья

Ниже мы рассмотрим решение по устранению желтеющих листьев, сначала определив симптомы, которые проявляет растение, что поможет выявить причину.

Листья желтые, завитые и опущенные

Если вы замечаете, что у вашего растения желтые листья завиваются внутрь, а почва сухая на ощупь, вероятно, оно подверглось недостатку полива. Вы также можете заметить, что старые листья начинают опадать. Чтобы исправить это, нужно полить ваше растение.

Желтые листья становятся зелеными или ярко-желтыми

Если листья становятся ярко-желтыми и почва влажная, вы также можете заметить чернение основания стеблей или грибковых мошек. Это признак переизбытка полива. Вы можете исправить это, дав почве высохнуть или пересадив растение в сухую почву.

Неправильные желтые пятна или деформация листьев

Неправильное желтеющее окрашивание с возможной деформацией листьев обычно вызвано либо вредителем, либо дефицитом минералов. Если вредители не видны, то скорее всего причина в дефиците минералов, обычно кальция или бора. Решением будет удобрять раз в месяц, или пересадить ваше растение в свежую почву для посадки. Свежая почвенная смесь содержит новые питательные вещества.

Все растение желтеет (могут или не могут опускаться листья)

Скорее всего проблема с температурой — она либо слишком низкая, либо слишком высокая для вашего растения там, где оно находится. Это обычно более бледло-желтый или беловато-желтый оттенок. Температура слишком сильно колеблется вокруг растения или является очевидной, как радиатор или сквозняк. Это также может быть связано с уровнем удобрений. Если очевидные причины, связанные с температурой, отсутствуют, и почва кажется нормальной, попробуйте добавить немного удобрений.

Все растение полурасцветает (без опадения листьев)

“Общая невроза” растения, желтеющего, означает, что оно либо слишком тесно в горшке — корням не хватает места для расширения, либо ваше растение находится в начальной стадии дефицита удобрений. Решением будет пересадить в более крупный горшок или попробовать добавить немного удобрений.

Желтеют только старые листья

По мере роста и зрелости растения старые листья могут устаревать, начать желтеть и, в конечном итоге, выпадать. Это естественное опадание листьев. Если ваше растение чувствует себя хорошо и здорово, и только старые, зрелые листья желтеют и опадают, нет причин для беспокойства!

`, + en: `

Why Do Leaves Turn Yellow?

Yellow leaves on plants mean different things depending on the variety, and what other symptoms the plant is showing. Overwatering, underwatering, mineral deficiency, temperature stress, and so on can all be the cause. Identifying the specific symptoms your plant is showing can help you determine the cause and take appropriate action.

How to Fix Yellow Leaves

Below, we go into the solution to get rid of yellowing leaves by first identifying the symptoms displayed by the plant which can help pinpoint the cause.

Leaves that are Yellow, Curling, and Drooping

If you notice your plant has yellow leaves that are curling inwards and the soil is dry to the touch, it's likely under-watered. You might also see older leaves falling off. To fix this, the solution is to water your plant.

Yellow Leaves Fading to Green or Turning Bright Yellow

Are the leaves turning bright yellow and is the soil wet? You might even notice blackened stem bases or fungus gnats. This is a sign of overwatering. You can correct this by letting the soil dry out or repotting the plant in dry soil.

Irregular Yellow Spots or Leaf Deformities

Irregular yellowing with potential leaf deformities is usually caused either by a pest or a mineral deficiency. If no pests are visible, then this is likely caused by a mineral deficiency, usually calcium or boron. The solution is to fertilize once a month, or repot your plant to provide fresh potting soil. Fresh potting soil contains new nutrients.

Whole Plant Yellowing (May or May Not Drop Leaves)

Most likely a temperature issue — it’s either too cold or too hot for your plant where it is placed. This will usually be a paler yellow or whitish yellow. Temperature will flux around the plant too much or will be obvious, like a radiator or a draft. It could also be a fertilizer issue. If no obvious temperature causes are present and the soil seems normal, try a little fertilizer.

Whole Plant Semi-Yellowing (Without Leaf Drop)

A “general malaise” of a plant turning yellow means that it’s either pot-bound—the roots have no room to expand—or your plant is in the early stages of a fertilizer deficiency. The solution is to repot to a bigger pot or try a little fertilizer.

Only Mature Leaves are Turning Yellow

As plants mature and grow, older leaves can age-out, start to yellow, and eventually fall from your plant. This is natural leaf shedding. If your plant is happy and healthy otherwise, and only older, mature leaves are yellowing and dropping, there is no need to worry!

`, + ru: `

Почему листья становятся желтыми?

Желтые листья на растениях могут означать разные вещи в зависимости от их вида и других симптомов, которые проявляет растение. Переизбыток полива, недостаток полива, дефицит минералов, стресс от температуры и так далее могут быть причиной. Определение конкретных симптомов, которые проявляет ваше растение, поможет вам определить причину и принять соответствующие меры.

Как исправить желтые листья

Ниже мы рассмотрим решение по устранению желтеющих листьев, сначала определив симптомы, которые проявляет растение, что поможет выявить причину.

Листья желтые, завитые и опущенные

Если вы замечаете, что у вашего растения желтые листья завиваются внутрь, а почва сухая на ощупь, вероятно, оно подверглось недостатку полива. Вы также можете заметить, что старые листья начинают опадать. Чтобы исправить это, нужно полить ваше растение.

Желтые листья становятся зелеными или ярко-желтыми

Если листья становятся ярко-желтыми и почва влажная, вы также можете заметить чернение основания стеблей или грибковых мошек. Это признак переизбытка полива. Вы можете исправить это, дав почве высохнуть или пересадив растение в сухую почву.

Неправильные желтые пятна или деформация листьев

Неправильное желтеющее окрашивание с возможной деформацией листьев обычно вызвано либо вредителем, либо дефицитом минералов. Если вредители не видны, то скорее всего причина в дефиците минералов, обычно кальция или бора. Решением будет удобрять раз в месяц, или пересадить ваше растение в свежую почву для посадки. Свежая почвенная смесь содержит новые питательные вещества.

Все растение желтеет (могут или не могут опускаться листья)

Скорее всего проблема с температурой — она либо слишком низкая, либо слишком высокая для вашего растения там, где оно находится. Это обычно более бледно-желтый или беловато-желтый оттенок. Температура слишком сильно колеблется вокруг растения или является очевидной, как радиатор или сквозняк. Это также может быть связано с уровнем удобрений. Если очевидные причины, связанные с температурой, отсутствуют, и почва кажется нормальной, попробуйте добавить немного удобрений.

Все растение полурасцветает (без опадения листьев)

“Общая невроза” растения, желтеющего, означает, что оно либо слишком тесно в горшке — корням не хватает места для расширения, либо ваше растение находится в начальной стадии дефицита удобрений. Решением будет пересадить в более крупный горшок или попробовать добавить немного удобрений.

Желтеют только старые листья

По мере роста и зрелости растения старые листья могут устаревать, начать желтеть и, в итоге, выпадать. Это естественное опадание листьев. Если ваше растение чувствует себя хорошо и здорово, и только старые, зрелые листья желтеют и опадают, нет причин для беспокойства!

`, }, date: { en: 'September 29', @@ -81,14 +81,14 @@ const postsData: Post[] = [ }, time: 3, title: { - en: 'Five Causes For Your Plant’s Yellow Leaves', + en: 'Five Causes for Your Plant’s Yellow Leaves', ru: 'Пять причин пожелтения листьев ваших растений', }, }, { content: { - en: `

When you bring your new plant home in its nursery grow pot, you might be tempted to pot it from grow pot into a planter right away. However, you'll be more successful if you let your new plant acclimate to its new environment first. Why?

It might sound strange to say about a plant but given the potential stress of acclimating to a new environment—adjusting to different light, levels of humidity, and temperature—you don’t want to unroot your plant at the same exact time. Think of its grow pot as allowing it to staying safe in its original home for a while.

So first, place your plant in the spot you plan to keep it and let it acclimate for about 2-3 weeks. (If it’s the the spring–summer growing season, you can shave off a few of those days to get it in a new planter sooner. More on that below.)

After this adjustment period, you can decide to leave as is or fully pot it into a decorative planter. Remember, potting a plant early on is optional: as long as it looks healthy and the roots have space to keep growing, you don’t need to lift a finger!

We break down different plant parent preferences below, and what to look when assessing if it’s time to pot your plant.

Why some prefer nursery grow pots

Some plant parents prefer to keep their plants potted in their nursery grow pots within decorative planters for months, as long as the plant still has room to grow. They do this for a variety of reasons, some of which you’ll find below:

  • Ease of watering: Grow pots have drainage holes so you don’t have to be as mindful when you water
  • Added planter choice: Grow pots give you the ability to use decorative planters that don’t have drainage holes (à la cachepot) - the decorative planter serves as a saucer, catching excess water that drains out
  • Easier to move: Easily move your plant from one decorative pot to another when refreshing your decor, without added weight
  • Time of year: If it’s fall or winter, the plant is semi-dormant and growing slow, so it doesn’t need more room or new nutrients

About that last bullet… did you know even indoor plants can be on a seasonal schedule? The best time to repot your plant, be it introducing a new planter or simply providing fresh new soil, is during the springsummer growing season. This is when plants will have the energy—thanks to more sun and longer days—to make use of the new nutrients in fresh soil and grow into the extra space of a new planter.

When to consider fully potting

So now that you know you can keep your plant in its grow pot if you prefer, here are some reasons why you’d want to eventually pot it into its planter, outside of aesthetic preferences.

  • It’s grown up: You know your plant has outgrown the nursery grow pot if...
  • Roots are growing through the drainage holes at the bottom of the grow pot
  • Roots are pushing the plant up, out of the grow pot
  • It’s top heavy, and falls over easily
  • It’s growing slower than normal (outside of winter dormancy)
  • The size of the plant is three times or more the size of the grow pot
  • Dry potting mix: Your plant’s potting mix dries out more quickly than usual, requiring more frequent waterings
  • It’s the season: Your plant could use fresh potting mix and more space for the spring–summer growing season
How to pot your plant

When the time comes to move your plant from its nursery grow pot into its planter, here's what you'll want handy in addition to your plant and planter:

  • Fresh potting mix
  • Lava rocks or similar, if your planter does not have a drainage hole

We carry apartment-friendly sized bags of indoor potting mixes, as well as lava rocks, here. Or use your favorite all-purpose indoor potting soil for houseplants and container gardens. River rocks or gravel can be substituted for lava rocks. Essentially you’re looking for something to create crevices at the bottom of the planter for excess water to pool into, away from the plant’s roots. To learn more about why this is necessary, check out our video on drainage here!

Now that you have your supplies, here’s the steps you need to take to move your plant from its grow pot into its earthenware planter. (Prefer a visual? Watch our plant expert go through the motions here!)

Steps to pot your plant

1. Remove plant from nursery grow pot
Turn your new plant sideways, hold it gently by the stems or leaves, and tap the bottom of its grow pot until the plant slides out. You might need to give it a bit of help with a couple gentle tugs on the base of the stems. If it’s very secure, you can also cut through the plastic grow pot with a pair of scissors.

2. Loosen the roots
Now that you’ve removed the grow pot, loosen the plant’s roots gently with your hands. You can prune off any threadlike roots that are extra long, just make sure to leave the thicker roots at the base of the foliage. If your plant is root bound – the roots are growing in very tight circles around the base of the plant – unbind the roots as best you can and give them a trim.

3. Remove some potting mix
Remove about one third or more of the potting mix currently surrounding the plant. As it grew in its grow pot, your plant removed some of the nutrients in the current mix, so you'll want to give it fresh mix if you're potting it anyway!

4. Add new potting mix
Pour a layer of fresh potting soil into the plant’s new planter and pack it down, removing any air pockets. If your planter does not have a drainage hole, layer the bottom with lava rocks or similar before adding the potting mix to create crevices for the extra water to pool into.

5. Add your plant
Set your plant that you removed from the grow pot on top of the fresh layer of mix in the new planter, making sure it's centered, then add potting mix around the plant until it is secure. Be sure not to pack too much soil into the planter, as you want the roots to breathe.

6. Water and enjoy
Even out the potting soil on top, water well, and enjoy!

We’ve got you!

For some, the mantra ‘plant care is self care’ means the convenience of leaving it in the nursery grow pot, while for others, it may mean getting your hands dirty to repot. We say: do what works best for you! Do not be afraid to try different methods for different plants. And if you’re overwhelmed and unsure—ask us. We’re here to help.

`, - ru: `

Когда вы привозите свое новое растение домой в его посадочном горшке из питомника, вас может подманить идея сразу пересадить его из посадочного горшка в горшок для цветов. Однако вы будете более успешны, если сначала дадите вашему новому растению привыкнуть к новой среде. Почему?

Может показаться странным говорить так об растении, но учитывая потенциальный стресс от приспособления к новой среде — адаптации к различному свету, уровню влажности и температуре — вы не хотите одновременно вытаскивать растение из корней. Представьте его посадочный горшок как место, позволяющее ему оставаться в безопасности в своем первоначальном доме какое-то время.

Итак, сначала поместите ваше растение на том месте, где вы планируете его держать, и позвольте ему привыкнуть около 2-3 недель. (Если это весенне-летний сезон роста, вы можете сократить несколько из этих дней, чтобы пересадить его в новый горшок раньше. Подробнее об этом ниже.)

После этого периода приспособления вы можете решить оставить все как есть или полностью пересадить его в декоративный горшок. Помните, что пересадка растения в начальной стадии — это необязательно: пока оно выглядит здоровым и у корней есть пространство для роста, вам не нужно приложить усилий!

Мы разберем различные предпочтения родителей растений ниже и что следует учитывать при оценке, когда пришло время пересадить ваше растение.

Почему некоторые предпочитают посадочные горшки для питомников

Некоторые родители растений предпочитают оставлять свои растения в посадочных горшках для питомников в декоративных горшках в течение месяцев, пока у растения есть место для роста. Они делают это по разным причинам, некоторые из которых вы найдете ниже:

  • Простота полива: В посадочных горшках есть дренажные отверстия, поэтому вам не нужно быть столь внимательными при поливе
  • Дополнительный выбор горшков: Посадочные горшки позволяют использовать декоративные горшки без дренажных отверстий (à la кашпо) - декоративный горшок служит блюдцем, улавливая излишнюю воду, которая вытекает
  • Удобство перемещения: Легко перемещать ваше растение из одного декоративного горшка в другой при обновлении вашего интерьера, без дополнительного веса
  • Время года: Если это осень или зима, растение полуспящее и медленно растет, поэтому оно не нуждается в большем пространстве или новых питательных веществах

Кстати о последнем... знали ли вы, что даже комнатные растения могут иметь сезонное расписание? Лучшее время для пересадки вашего растения, будь то введение нового горшка или просто обеспечение новой свежей почвы, приходится на весеннелетний сезон роста. В это время растения будут иметь энергию — благодаря большему солнцу и длинным дням — для использования новых питательных веществ в свежей почве и роста в дополнительном пространстве нового горшка.

Когда следует рассмотреть полную пересадку

Итак, теперь, когда вы знаете, что можете оставить свое растение в посадочном горшке, если хотите, вот несколько причин, по которым вы захотите в конечном итоге пересадить его в горшок, вне эстетических предпочтений.

  • Оно выросло: Вы знаете, что ваше растение выросло из посадочного горшка для питомника, если...
  • Корни растут через дренажные отверстия внизу посадочного горшка
  • Корни выталкивают растение вверх, из посадочного горшка
  • Оно неустойчиво и легко падает
  • Оно растет медленнее обычного (за пределами зимней спячки)
  • Размер растения в три или более раз больше размера посадочного горшка
  • Сухая почвенная смесь: Почвенная смесь вашего растения быстрее высыхает, чем обычно, требуя более частого полива
  • Это сезон: Вашему растению нужна свежая почвенная смесь и больше места для весенне-летнего сезона роста
Как пересадить ваше растение

Когда наступает время перенести ваше растение из посадочного горшка для питомника в его горшок, вот что вам понадобится помимо вашего растения и горшка:

  • Свежая почвенная смесь
  • Лавовые камни или аналогичные, если ваш горшок не имеет дренажного отверстия

Мы предлагаем сумки с подходящими для квартир размерами внутренних почвенных смесей, а также лавовые камни, здесь. Или используйте вашу любимую универсальную внутреннюю почву для домашних растений и контейнерных садов. Речные камни или гравий могут быть заменены лавовыми камнями. В основном, вам нужно что-то, чтобы создать углубления внизу горшка для стока излишней воды, вдали от корней растения. Чтобы узнать больше о том, почему это необходимо, посмотрите наше видео о дренаже здесь!

Теперь, когда у вас есть все необходимое, вот шаги, которые вам нужно предпринять, чтобы перенести ваше растение из посадочного горшка в его горшок из глины. (Предпочитаете визуальное изображение? Посмотрите, как наш эксперт по растениям выполняет процесс здесь!)

Шаги по пересадке вашего растения

1. Извлеките растение из посадочного горшка для питомника
Поверните ваше новое растение боком, держите его нежно за стебли или листья и постукивайте по дну его посадочного горшка до тех пор, пока растение не выскальзывает. Вам может потребоваться немного помощи, немного потянув за основание стеблей. Если он очень надежно фиксирован, вы также можете прорезать пластиковый посадочный горшок ножницами.

2. Разомните корни
Теперь, когда вы извлекли посадочный горшок, осторожно разомните корни растения руками. Вы можете обрезать все длинные корни, оставив только более толстые корни у основания листвы. Если корни вашего растения слишком плотно свиты – они растут в очень тесных кругах вокруг основания растения – расплетите их как можно лучше и обрежьте.

3. Удалите немного почвенной смеси
Удалите примерно треть или больше почвенной смеси, которая сейчас окружает растение. Поскольку ваше растение росло в посадочном горшке, оно потребовало некоторого количества питательных веществ из текущей смеси, поэтому вы захотите дать ему свежую смесь, если все равно будете его пересаживать!

4. Добавьте новую почвенную смесь
Налейте слой свежей почвы в новый горшок для растения и уплотните ее, удалив любые воздушные полости. Если ваш горшок не имеет дренажного отверстия, на дно налейте лавовые камни или что-то подобное перед добавлением почвенной смеси, чтобы создать углубления для стока лишней воды.

5. Поместите ваше растение
Поместите ваше растение, которое вы извлекли из посадочного горшка, поверх свежего слоя смеси в новом горшке, убедившись, что оно находится по центру, затем добавьте почву вокруг растения, пока оно не будет надежно закреплено. Обратите внимание, что вы не должны слишком плотно уплотнять почву в горшке, так как корни должны дышать.

6. Поливайте и наслаждайтесь
Выровняйте почву сверху, хорошо полейте водой и наслаждайтесь!

Мы здесь для вас!

Для кого-то мантра ‘забота о растениях — это забота о себе’ означает удобство оставить его в посадочном горшке для питомника, а для других — это может означать поработать руками, чтобы пересадить его. Мы говорим: делайте то, что лучше всего подходит вам! Не бойтесь пробовать разные методы для разных растений. И если вы чувствуете себя подавленными и неуверенными — спросите у нас. Мы здесь, чтобы помочь.

`, + en: `

When you bring your new plant home in its nursery grow pot, you might be tempted to pot it from grow pot into a planter right away. However, you'll be more successful if you let your new plant acclimate to its new environment first. Why?

It might sound strange to say about a plant but given the potential stress of acclimating to a new environment—adjusting to different light, levels of humidity, and temperature—you don’t want to unroot your plant at the same exact time. Think of its grow pot as allowing it to stay safe in its original home for a while.

So first, place your plant in the spot you plan to keep it and let it acclimate for about 2-3 weeks. (If it’s the the spring–summer growing season, you can shave off a few of those days to get it in a new planter sooner. More on that below.)

After this adjustment period, you can decide to leave as is or fully pot it into a decorative planter. Remember, potting a plant early on is optional: as long as it looks healthy and the roots have space to keep growing, you don’t need to lift a finger!

We break down different plant parent preferences below, and what to look for when assessing if it’s time to pot your plant.

Why some prefer nursery grow pots

Some plant parents prefer to keep their plants potted in their nursery grow pots within decorative planters for months, as long as the plant still has room to grow. They do this for a variety of reasons, some of which you’ll find below:

  • Ease of watering: Grow pots have drainage holes so you don’t have to be as mindful when you water
  • Added planter choice: Grow pots give you the ability to use decorative planters that don’t have drainage holes (à la cachepot) - the decorative planter serves as a saucer, catching excess water that drains out
  • Easier to move: Easily move your plant from one decorative pot to another when refreshing your decor, without added weight
  • Time of year: If it’s fall or winter, the plant is semi-dormant and growing slow, so it doesn’t need more room or new nutrients

About that last bullet… did you know even indoor plants can be on a seasonal schedule? The best time to repot your plant, be it introducing a new planter or simply providing fresh new soil, is during the springsummer growing season. This is when plants will have the energy—thanks to more sun and longer days—to make use of the new nutrients in fresh soil and grow into the extra space of a new planter.

When to consider fully potting

So now that you know you can keep your plant in its grow pot if you prefer, here are some reasons why you’d want to eventually pot it into its planter, outside of aesthetic preferences.

  • It’s grown up: You know your plant has outgrown the nursery grow pot if...
  • Roots are growing through the drainage holes at the bottom of the grow pot
  • Roots are pushing the plant up, out of the grow pot
  • It’s top heavy, and falls over easily
  • It’s growing slower than normal (outside of winter dormancy)
  • The size of the plant is three times or more the size of the grow pot
  • Dry potting mix: Your plant’s potting mix dries out more quickly than usual, requiring more frequent waterings
  • It’s the season: Your plant could use fresh potting mix and more space for the spring–summer growing season
How to pot your plant

When the time comes to move your plant from its nursery grow pot into its planter, here's what you'll want handy in addition to your plant and planter:

  • Fresh potting mix
  • Lava rocks or similar, if your planter does not have a drainage hole

We carry apartment-friendly sized bags of indoor potting mixes, as well as lava rocks, here. Or use your favorite all-purpose indoor potting soil for houseplants and container gardens. River rocks or gravel can be substituted for lava rocks. Essentially, you’re looking for something to create crevices at the bottom of the planter for excess water to pool into, away from the plant’s roots. To learn more about why this is necessary, check out our video on drainage here!

Now that you have your supplies, here’s the steps you need to take to move your plant from its grow pot into its earthenware planter. (Prefer a visual? Watch our plant expert go through the motions here!)

Steps to pot your plant

1. Remove plant from nursery grow pot
Turn your new plant sideways, hold it gently by the stems or leaves, and tap the bottom of its grow pot until the plant slides out. You might need to give it a bit of help with a couple gentle tugs on the base of the stems. If it’s very secure, you can also cut through the plastic grow pot with a pair of scissors.

2. Loosen the roots
Now that you’ve removed the grow pot, loosen the plant’s roots gently with your hands. You can prune off any threadlike roots that are extra-long, just make sure to leave the thicker roots at the base of the foliage. If your plant is root bound – the roots are growing in very tight circles around the base of the plant – unbind the roots as best you can and give them a trim.

3. Remove some potting mix
Remove about one third or more of the potting mix currently surrounding the plant. As it grew in its grow pot, your plant removed some of the nutrients in the current mix, so you'll want to give it fresh mix if you're potting it anyway!

4. Add new potting mix
Pour a layer of fresh potting soil into the plant’s new planter and pack it down, removing any air pockets. If your planter does not have a drainage hole, layer the bottom with lava rocks or similar before adding the potting mix to create crevices for the extra water to pool into.

5. Add your plant
Set your plant that you removed from the grow pot on top of the fresh layer of mix in the new planter, making sure it's centered, then add potting mix around the plant until it is secure. Be sure not to pack too much soil into the planter, as you want the roots to breathe.

6. Water and enjoy
Even out the potting soil on top, water well, and enjoy!

We’ve got you!

For some, the mantra ‘plant care is self-care’ means the convenience of leaving it in the nursery grow pot, while for others, it may mean getting your hands dirty to repot. We say: do what works best for you! Do not be afraid to try different methods for different plants. And if you’re overwhelmed and unsure—ask us. We’re here to help.

`, + ru: `

Когда вы привозите свое новое растение домой в его посадочном горшке из питомника, вас может подманить идея сразу пересадить его из посадочного горшка в горшок для цветов. Однако вы будете более успешны, если сначала дадите вашему новому растению привыкнуть к новой среде. Почему?

Может показаться странным говорить так об растении, но учитывая потенциальный стресс от приспособления к новой среде — адаптации к различному свету, уровню влажности и температуре — вы не хотите одновременно вытаскивать растение из корней. Представьте его посадочный горшок как место, позволяющее ему оставаться в безопасности в своем первоначальном доме какое-то время.

Итак, сначала поместите ваше растение на том месте, где вы планируете его держать, и позвольте ему привыкнуть около 2-3 недель. (Если это весенне-летний сезон роста, вы можете сократить несколько из этих дней, чтобы пересадить его в новый горшок раньше. Подробнее об этом ниже.)

После этого периода приспособления вы можете решить оставить все как есть или полностью пересадить его в декоративный горшок. Помните, что пересадка растения в начальной стадии — это необязательно: пока оно выглядит здоровым и у корней есть пространство для роста, вам не нужно приложить усилий!

Мы разберем различные предпочтения родителей растений ниже и что следует учитывать при оценке, когда пришло время пересадить ваше растение.

Почему некоторые предпочитают посадочные горшки для питомников

Некоторые родители растений предпочитают оставлять свои растения в посадочных горшках для питомников в декоративных горшках в течение месяцев, пока у растения есть место для роста. Они делают это по разным причинам, некоторые из которых вы найдете ниже:

  • Простота полива: В посадочных горшках есть дренажные отверстия, поэтому вам не нужно быть столь внимательными при поливе
  • Дополнительный выбор горшков: Посадочные горшки позволяют использовать декоративные горшки без дренажных отверстий (à la кашпо) - декоративный горшок служит блюдцем, улавливая излишнюю воду, которая вытекает
  • Удобство перемещения: Легко перемещать ваше растение из одного декоративного горшка в другой при обновлении вашего интерьера, без дополнительного веса
  • Время года: Если это осень или зима, растение полуспящее и медленно растет, поэтому оно не нуждается в большем пространстве или новых питательных веществах

Кстати, о последнем... знали ли вы, что даже комнатные растения могут иметь сезонное расписание? Лучшее время для пересадки вашего растения, будь то введение нового горшка или просто обеспечение новой свежей почвы, приходится на весеннелетний сезон роста. В это время растения будут иметь энергию — благодаря большему солнцу и длинным дням — для использования новых питательных веществ в свежей почве и роста в дополнительном пространстве нового горшка.

Когда следует рассмотреть полную пересадку

Итак, теперь, когда вы знаете, что можете оставить свое растение в посадочном горшке, если хотите, вот несколько причин, по которым вы захотите в итоге пересадить его в горшок, вне эстетических предпочтений.

  • Оно выросло: Вы знаете, что ваше растение выросло из посадочного горшка для питомника, если...
  • Корни растут через дренажные отверстия внизу посадочного горшка
  • Корни выталкивают растение вверх, из посадочного горшка
  • Оно неустойчиво и легко падает
  • Оно растет медленнее обычного (за пределами зимней спячки)
  • Размер растения в три или более раз больше размера посадочного горшка
  • Сухая почвенная смесь: Почвенная смесь вашего растения быстрее высыхает, чем обычно, требуя более частого полива
  • Это сезон: Вашему растению нужна свежая почвенная смесь и больше места для весенне-летнего сезона роста
Как пересадить ваше растение

Когда наступает время перенести ваше растение из посадочного горшка для питомника в его горшок, вот что вам понадобится помимо вашего растения и горшка:

  • Свежая почвенная смесь
  • Лавовые камни или аналогичные, если ваш горшок не имеет дренажного отверстия

Мы предлагаем сумки с подходящими для квартир размерами внутренних почвенных смесей, а также лавовые камни, здесь. Или используйте вашу любимую универсальную внутреннюю почву для домашних растений и контейнерных садов. Речные камни или гравий могут быть заменены лавовыми камнями. В основном, вам нужно что-то, чтобы создать углубления внизу горшка для стока излишней воды, вдали от корней растения. Чтобы узнать больше о том, почему это необходимо, посмотрите наше видео о дренаже здесь!

Теперь, когда у вас есть все необходимое, вот шаги, которые вам нужно предпринять, чтобы перенести ваше растение из посадочного горшка в его горшок из глины. (Предпочитаете визуальное изображение? Посмотрите, как наш эксперт по растениям выполняет процесс здесь!)

Шаги по пересадке вашего растения

1. Извлеките растение из посадочного горшка для питомника
Поверните ваше новое растение боком, держите его нежно за стебли или листья и постукивайте по дну его посадочного горшка до тех пор, пока растение не выскальзывает. Вам может потребоваться немного помощи, немного потянув за основание стеблей. Если он очень надежно фиксирован, вы также можете прорезать пластиковый посадочный горшок ножницами.

2. Разомните корни
Теперь, когда вы извлекли посадочный горшок, осторожно разомните корни растения руками. Вы можете обрезать все длинные корни, оставив только более толстые корни у основания листвы. Если корни вашего растения слишком плотно свиты – они растут в очень тесных кругах вокруг основания растения – расплетите их как можно лучше и обрежьте.

3. Удалите немного почвенной смеси
Удалите примерно треть или больше почвенной смеси, которая сейчас окружает растение. Поскольку ваше растение росло в посадочном горшке, оно потребовало некоторого количества питательных веществ из текущей смеси, поэтому вы захотите дать ему свежую смесь, если все равно будете его пересаживать!

4. Добавьте новую почвенную смесь
Налейте слой свежей почвы в новый горшок для растения и уплотните ее, удалив любые воздушные полости. Если ваш горшок не имеет дренажного отверстия, на дно налейте лавовые камни или что-то подобное перед добавлением почвенной смеси, чтобы создать углубления для стока лишней воды.

5. Поместите ваше растение
Поместите ваше растение, которое вы извлекли из посадочного горшка, поверх свежего слоя смеси в новом горшке, убедившись, что оно находится по центру, затем добавьте почву вокруг растения, пока оно не будет надежно закреплено. Обратите внимание, что вы не должны слишком плотно уплотнять почву в горшке, так как корни должны дышать.

6. Поливайте и наслаждайтесь
Выровняйте почву сверху, хорошо полейте водой и наслаждайтесь!

Мы здесь для вас!

Для кого-то мантра ‘забота о растениях — это забота о себе’ означает удобство оставить его в посадочном горшке для питомника, а для других — это может означать поработать руками, чтобы пересадить его. Мы говорим: делайте то, что лучше всего подходит вам! Не бойтесь пробовать разные методы для разных растений. И если вы чувствуете себя подавленными и неуверенными — спросите у нас. Мы здесь, чтобы помочь.

`, }, date: { en: 'October 5', @@ -97,7 +97,7 @@ const postsData: Post[] = [ id: 'bl-post-05', image: 'img/webp/bl-post-05.webp', shortDescription: { - en: 'So your plant arrived in its nursery grow pot—now what?', + en: 'So, your plant arrived in its nursery grow pot—now what?', ru: 'Итак, ваше растение прибыло в горшке из питомника - что теперь?', }, time: 7, @@ -150,7 +150,7 @@ const postsData: Post[] = [ }, { content: { - en: `

Calcium is used to fortify plant cell walls, much like it fortifies our bones and teeth. When we use ground or tap water, often rich in calcium and other minerals, it has a tendency to precipitate out and become a solid. As water evaporates, the calcium is left behind, forming a white, chalky residue. You may have seen calcium buildup or deposits in your bathroom, in the shower, even the kitchen sink. In plants, you’ll find it on leaves that got wet or on porous ceramic pots like terracotta. On ceramics, there’s no harm in leaving it, especially if the rustic look is your thing. On leaves though, while harmless, can look ugly and possibly clog pores when it builds up.

Science & Solutions

Calcium is an “alkali-earth” metal with low density, resistant to heating and dissolving, and never occurs pure in nature. “Alkali” because it forms alkaline solutions with water and other elements. The term “earth” refers to non-metallic substances, like rocks and chalk. This is not entirely accurate, as we now know that we can in fact extract calcium in its purest form from the “earth”, which is a metal that reacts with air and substances around it.

Because calcium has a low solubility in water, it is so easily left behind when water dries up. Its alkali nature means it can react with acids to become soluble. If you want to rid your plants or pots of calcium buildup, use a simple acid like lemon juice or vinegar to dissolve the calcium salts. We recommend mixing 1 parts lemon juice to 3 parts water (a 25% solution) OR 1 parts vinegar to 4 parts water (a 20% solution). Wipe the leaves with a rag soaked in this solution and the calcium should come right off. Repeat until it has all been removed.

`, + en: `

Calcium is used to fortify plant cell walls, much like it fortifies our bones and teeth. When we use ground or tap water, often rich in calcium and other minerals, it tends to precipitate out and become a solid. As water evaporates, the calcium is left behind, forming a white, chalky residue. You may have seen calcium buildup or deposits in your bathroom, in the shower, even the kitchen sink. In plants, you’ll find it on leaves that got wet or on porous ceramic pots like terracotta. On ceramics, there’s no harm in leaving it, especially if the rustic look is your thing. On leaves though, while harmless, can look ugly and possibly clog pores when it builds up.

Science & Solutions

Calcium is an “alkali-earth” metal with low density, resistant to heating and dissolving, and never occurs pure in nature. “Alkali” because it forms alkaline solutions with water and other elements. The term “earth” refers to non-metallic substances, like rocks and chalk. This is not entirely accurate, as we now know that we can in fact extract calcium in its purest form from the “earth”, which is a metal that reacts with air and substances around it.

Because calcium has a low solubility in water, it is so easily left behind when water dries up. Its alkali nature means it can react with acids to become soluble. If you want to rid your plants or pots of calcium buildup, use a simple acid like lemon juice or vinegar to dissolve the calcium salts. We recommend mixing 1 parts lemon juice with 3 parts water (a 25% solution) OR 1 parts vinegar to 4 parts water (a 20% solution). Wipe the leaves with a rag soaked in this solution and the calcium should come right off. Repeat until it has all been removed.

`, ru: `

Кальций используется для укрепления клеточных стенок растений, так же как он укрепляет наши кости и зубы. Когда мы используем грунтовую или водопроводную воду, часто богатую кальцием и другими минералами, кальций имеет тенденцию высаживаться и становиться твердым. При испарении воды кальций остаётся на поверхности, образуя белый меловой налёт. Возможно, вы видели отложения кальция в ванной комнате, в душе или даже на кухонной раковине. На растениях вы найдёте его на мокрых листьях или на пористой керамической посуде, такой как терракота. На керамике никакого вреда в том, чтобы это оставить, особенно если вам нравится рустиковый вид. На листьях, хотя это безвредно, может выглядеть некрасиво и, возможно, забивать поры, когда накапливается.

Наука и решения

Кальций — это «земно-алкалийный» металл с низкой плотностью, устойчивый к нагреванию и растворению, и никогда не встречается в чистом виде в природе. «Алкалий» потому, что он образует щёлочные растворы с водой и другими элементами. Термин «земля» относится к неметаллическим веществам, таким как камни и мел. Это не совсем точно, поскольку мы сейчас знаем, что на самом деле мы можем извлекать кальций в его чистейшей форме из «земли», это металл, который реагирует с воздухом и веществами вокруг него.

Поскольку кальций плохо растворим в воде, он так легко остаётся, когда вода испаряется. Его щёлочная природа означает, что он может реагировать с кислотами, чтобы стать растворимым. Если вы хотите избавиться от отложений кальция на ваших растениях или горшках, используйте простую кислоту, такую как лимонный сок или уксус, чтобы растворить соли кальция. Мы рекомендуем смешивать 1 часть лимонного сока с 3 частями воды (25% раствор) ИЛИ 1 часть уксуса с 4 частями воды (20% раствор). Протрите листья тряпкой, смоченной в этом растворе, и кальций должен будет легко смыться. Повторяйте, пока всё не будет удалено.

`, }, date: { diff --git a/src/shared/Store/Store.ts b/src/shared/Store/Store.ts index 9b2d996c..684b3840 100644 --- a/src/shared/Store/Store.ts +++ b/src/shared/Store/Store.ts @@ -1,10 +1,10 @@ import type { Action, State } from './reducer.ts'; import type { Reducer, ReduxStore } from './types'; -import initialState from '../constants/initialState.ts'; import { parseToLoad } from '../services/helper.ts'; import { STORAGE_KEY, saveCurrentStateToLocalStorage } from '../services/localStorage.ts'; import { setCurrentPage } from './actions.ts'; +import initialState from './initialState.ts'; import { rootReducer } from './reducer.ts'; export class Store implements ReduxStore { diff --git a/src/shared/constants/initialState.ts b/src/shared/Store/initialState.ts similarity index 71% rename from src/shared/constants/initialState.ts rename to src/shared/Store/initialState.ts index 6c047033..c1b712e6 100644 --- a/src/shared/constants/initialState.ts +++ b/src/shared/Store/initialState.ts @@ -1,7 +1,7 @@ -import type { State } from '../Store/reducer'; +import type { State } from './reducer.ts'; -import { LANGUAGE_CHOICE } from './common.ts'; -import { PAGE_ID } from './pages.ts'; +import { LANGUAGE_CHOICE } from '../constants/common.ts'; +import { PAGE_ID } from '../constants/pages.ts'; const initialState: State = { anonymousCartId: null, diff --git a/src/shared/constants/forms.ts b/src/shared/constants/forms.ts index 27b9d959..235f10b6 100644 --- a/src/shared/constants/forms.ts +++ b/src/shared/constants/forms.ts @@ -71,3 +71,10 @@ export const ADDRESS_TEXT = { STREET: 'Адрес: ', }, } as const; + +export const ADDRESS_TEXT_KEY = { + CITY: 'CITY', + COUNTRY: 'COUNTRY', + POSTAL_CODE: 'POSTAL_CODE', + STREET: 'STREET', +}; diff --git a/src/shared/constants/forms/validationParams.ts b/src/shared/constants/forms/validationParams.ts index 03e8817f..677eaef3 100644 --- a/src/shared/constants/forms/validationParams.ts +++ b/src/shared/constants/forms/validationParams.ts @@ -23,7 +23,7 @@ export const PASSWORD_VALIDATE = { required: true, requiredSymbols: { messages: { - en: 'Password must contain English letters, at least one letter in upper and lower case and at least one number', + en: 'Password must contain English letters, at least one letter in upper and lower case, and at least one number', ru: 'Пароль должен содержать английские буквы, как минимум одну букву в верхнем и нижнем регистре, а также хотя бы одну цифру', }, pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+/, diff --git a/src/shared/constants/messages.ts b/src/shared/constants/messages.ts index d709a25f..0ce682da 100644 --- a/src/shared/constants/messages.ts +++ b/src/shared/constants/messages.ts @@ -13,7 +13,7 @@ export const SERVER_MESSAGE: Record> ADDRESS_CHANGED: 'Address has been changed successfully', ADDRESS_DELETED: 'Address has been deleted successfully', ADDRESS_STATUS_CHANGED: 'Address status has been changed successfully', - BAD_REQUEST: 'Sorry, something went wrong. Try again later.', + BAD_REQUEST: 'Sorry, something went wrong. Try again later', COUPON_NEED_LOGIN: 'You must be logged in to apply this promo code', COUPON_WRONG_DATE: 'You can only apply this promo code 3 days before and after your birthday', INCORRECT_PASSWORD: 'Please, enter a correct password', @@ -21,11 +21,11 @@ export const SERVER_MESSAGE: Record> INVALID_EMAIL: "User with this email doesn't exist. Please, register first", LANGUAGE_CHANGED: 'Language preferences have been updated successfully', NEED_LOGIN: 'You need to log in to see this page', - PASSWORD_CHANGED: 'Your password has been changed successfully', - PASSWORD_NOT_CHANGED: 'Your password has not been changed. Please, try again', + PASSWORD_CHANGED: 'Password has been changed successfully', + PASSWORD_NOT_CHANGED: 'Password has not been changed. Please, try again', PERSONAL_INFO_CHANGED: 'Personal information has been changed successfully', SUCCESSFUL_ADD_COUPON_TO_CART: ' has been applied to your cart successfully', - SUCCESSFUL_ADD_PRODUCT_TO_CART: ' has been added in your cart', + SUCCESSFUL_ADD_PRODUCT_TO_CART: ' has been added to your cart', SUCCESSFUL_ADD_PRODUCT_TO_WISHLIST: ' has been added to your wishlist', SUCCESSFUL_CLEAR_CART: 'Cart has been cleared successfully', SUCCESSFUL_COPY_PROMO_CODE_TO_CLIPBOARD: ' has been copied to clipboard', @@ -36,14 +36,14 @@ export const SERVER_MESSAGE: Record> SUCCESSFUL_LOGIN: 'Welcome to our store. Enjoy shopping!', SUCCESSFUL_REGISTRATION: 'Your registration was successful', SUCCESSFUL_SUBSCRIBE: 'You have successfully subscribed to our newsletter', - USER_EXISTS: 'User with this email already exists, please check your email', + USER_EXISTS: 'User with this email already exists, please, check your email', }, ru: { ADDRESS_ADDED: 'Адрес успешно добавлен', ADDRESS_CHANGED: 'Адрес успешно изменен', ADDRESS_DELETED: 'Адрес успешно удален', ADDRESS_STATUS_CHANGED: 'Статус адреса успешно изменен', - BAD_REQUEST: 'Извините, что-то пошло не так. Попробуйте позже.', + BAD_REQUEST: 'Извините, что-то пошло не так. Попробуйте позже', COUPON_NEED_LOGIN: 'Вам нужно войти, чтобы применить этот промокод', COUPON_WRONG_DATE: 'Вы можете применить этот промокод только за 3 дня до и после дня рождения', INCORRECT_PASSWORD: 'Пожалуйста, введите правильный пароль', @@ -51,13 +51,13 @@ export const SERVER_MESSAGE: Record> INVALID_EMAIL: 'Пользователь с таким адресом не существует. Пожалуйста, сначала зарегистрируйтесь', LANGUAGE_CHANGED: 'Настройки языка успешно обновлены', NEED_LOGIN: 'Вам нужно войти, чтобы перейти на эту страницу', - PASSWORD_CHANGED: 'Ваш пароль успешно изменен', - PASSWORD_NOT_CHANGED: 'Ваш пароль не был изменен. Пожалуйста, попробуйте ещё раз', + PASSWORD_CHANGED: 'Пароль успешно изменен', + PASSWORD_NOT_CHANGED: 'Пароль не был изменен. Пожалуйста, попробуйте ещё раз', PERSONAL_INFO_CHANGED: 'Персональные данные успешно изменены', SUCCESSFUL_ADD_COUPON_TO_CART: ' успешно применен к корзине', SUCCESSFUL_ADD_PRODUCT_TO_CART: ' уже в корзине', SUCCESSFUL_ADD_PRODUCT_TO_WISHLIST: ' уже в избранном', - SUCCESSFUL_CLEAR_CART: 'Корзина была успешно очищена', + SUCCESSFUL_CLEAR_CART: 'Корзина успешно очищена', SUCCESSFUL_COPY_PROMO_CODE_TO_CLIPBOARD: ' скопирован в буфер обмена', SUCCESSFUL_COPY_TO_CLIPBOARD: ' успешно скопирован в буфер обмена', SUCCESSFUL_DELETE_COUPON_FROM_CART: ' успешно удален из корзины', diff --git a/src/shared/constants/pages.ts b/src/shared/constants/pages.ts index 6c14fb96..39b54f34 100644 --- a/src/shared/constants/pages.ts +++ b/src/shared/constants/pages.ts @@ -53,7 +53,7 @@ export const PAGE_DESCRIPTION = { export const BLOG_DESCRIPTION = { en: { LIST_DESCRIPTION: - 'Empowering all people to be plant people—a collection of articles from ours team of plant experts across a variety of plant care topics to inspire confidence in the next generation of plant parents. Welcome to GREENSHOP', + 'Empowering all people to be plant people — a collection of articles from ours team of plant experts across a variety of plant care topics to inspire confidence in the next generation of plant parents. Welcome to GREENSHOP', LIST_TITLE: 'Your Journey to Plant Parenthood', WIDGET_DESCRIPTIONS: 'This is where we share our experiences with all green friend lovers', WIDGET_TITLE: 'Our Blog Posts', @@ -124,3 +124,23 @@ export const USER_INFO_TEXT = { NAME: 'Имя: ', }, } as const; + +export const CART_PAGE_TITLE = { + BUTTON_CHECKOUT: { en: 'Proceed to Checkout', ru: 'Оформить заказ' }, + BUTTON_COUPON: { en: 'Apply', ru: 'Применить' }, + CART_TOTAL: { en: 'Cart Totals', ru: 'Итого по корзине' }, + CLEAR: { en: 'Clear all', ru: 'Очистить' }, + CONTINUE: { en: 'Continue Shopping', ru: 'Продолжить покупки' }, + COUPON_APPLY: { en: 'Apply Coupon', ru: 'Применить купон' }, + COUPON_DISCOUNT: { en: 'Cart Discount', ru: 'Скидка на корзину' }, + EMPTY: { + en: "Oops! Looks like you haven't added the item to your cart yet.", + ru: 'Ой! Похоже, вы еще не добавили товар в корзину.', + }, + INPUT_COUPON: { en: 'Enter coupon here...', ru: 'Введите купон здесь...' }, + PRICE: { en: 'Price', ru: 'Цена' }, + PRODUCT: { en: 'Product', ru: 'Продукт' }, + QUANTITY: { en: 'Quantity', ru: 'Количество' }, + SUBTOTAL: { en: 'Subtotal', ru: 'Сумма' }, + TOTAL: { en: 'Total', ru: 'Итого' }, +} as const; diff --git a/src/shared/constants/tooltip.ts b/src/shared/constants/tooltip.ts index f10b5100..b8929158 100644 --- a/src/shared/constants/tooltip.ts +++ b/src/shared/constants/tooltip.ts @@ -2,12 +2,11 @@ const TOOLTIP_TEXT: Record> = { en: { ADD_BILLING_ADDRESS: 'Add new billing address', ADD_SHIPPING_ADDRESS: 'Add new shipping address', - DELETE_ADDRESS: 'Delete address completely', + DELETE_ADDRESS: 'Delete address', EDIT_ADDRESS: 'Edit address', EDIT_PASSWORD: 'Edit password', EDIT_SHIPPING_ADDRESS: 'Switch shipping address status', SCROLL_TO_TOP: 'Scroll to top', - SWITCH_ADDRESS_STATUS: 'Change address status', SWITCH_BILLING_ADDRESS: 'Switch billing address status', SWITCH_DEFAULT_BILLING_ADDRESS: 'Switch default billing address status', SWITCH_DEFAULT_SHIPPING_ADDRESS: 'Switch default shipping address status', @@ -16,11 +15,10 @@ const TOOLTIP_TEXT: Record> = { ru: { ADD_BILLING_ADDRESS: 'Добавить новый адрес выставления счетов', ADD_SHIPPING_ADDRESS: 'Добавить новый адрес доставки', - DELETE_ADDRESS: 'Удалить адрес полностью', + DELETE_ADDRESS: 'Удалить адрес', EDIT_ADDRESS: 'Изменить адрес', EDIT_PASSWORD: 'Изменить пароль', SCROLL_TO_TOP: 'Наверх', - SWITCH_ADDRESS_STATUS: 'Изменить статус адреса', SWITCH_BILLING_ADDRESS: 'Изменить статус адреса выставления счетов', SWITCH_DEFAULT_BILLING_ADDRESS: 'Изменить статус адреса выставления счетов по умолчанию', SWITCH_DEFAULT_SHIPPING_ADDRESS: 'Изменить статус адреса доставки по умолчанию', @@ -35,7 +33,6 @@ export const TOOLTIP_TEXT_KEY = { EDIT_ADDRESS: 'EDIT_ADDRESS', EDIT_PASSWORD: 'EDIT_PASSWORD', SCROLL_TO_TOP: 'SCROLL_TO_TOP', - SWITCH_ADDRESS_STATUS: 'SWITCH_ADDRESS_STATUS', SWITCH_BILLING_ADDRESS: 'SWITCH_BILLING_ADDRESS', SWITCH_DEFAULT_BILLING_ADDRESS: 'SWITCH_DEFAULT_BILLING_ADDRESS', SWITCH_DEFAULT_SHIPPING_ADDRESS: 'SWITCH_DEFAULT_SHIPPING_ADDRESS', diff --git a/src/widgets/Header/view/headerView.module.scss b/src/widgets/Header/view/headerView.module.scss index 37b9a6cb..e252484b 100644 --- a/src/widgets/Header/view/headerView.module.scss +++ b/src/widgets/Header/view/headerView.module.scss @@ -27,7 +27,7 @@ .navigationWrapper { position: fixed; - right: 0; // 100% + right: -100%; top: calc(var(--tiny-offset) * 6.9); // 69px z-index: 20; display: flex; @@ -50,7 +50,7 @@ } &.open { - // transform: translateX(-500%); + transform: translateX(-500%); @media (max-width: 768px) { transform: translateX(-220%); diff --git a/src/widgets/UserAddresses/view/UserAddressesView.ts b/src/widgets/UserAddresses/view/UserAddressesView.ts index 19d540b8..5e581420 100644 --- a/src/widgets/UserAddresses/view/UserAddressesView.ts +++ b/src/widgets/UserAddresses/view/UserAddressesView.ts @@ -28,14 +28,15 @@ class UserAddressView { this.createShippingAddressButton = this.createCreateShippingAddressButton(); this.addressesListWrapper = this.createAddressesListWrapper(); this.addressesWrapper = this.createHTML(); + + this.observeStoreChanges(); } private createAddressesListWrapper(): HTMLUListElement { - this.addressesListWrapper = createBaseElement({ + return createBaseElement({ cssClasses: [styles.addressesListWrapper], tag: 'ul', }); - return this.addressesListWrapper; } private createBillingLogo(): HTMLDivElement { @@ -47,33 +48,17 @@ class UserAddressView { } private createCreateBillingAddressButton(): ButtonModel { - this.createBillingAddressButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.createAddressButton], title: TOOLTIP_TEXT[getCurrentLanguage()].ADD_BILLING_ADDRESS, }); - - this.createBillingAddressButton.getHTML().append(this.billingLogo); - - observeStore(selectCurrentLanguage, () => { - this.createBillingAddressButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].ADD_BILLING_ADDRESS; - }); - - return this.createBillingAddressButton; } private createCreateShippingAddressButton(): ButtonModel { - this.createShippingAddressButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.createAddressButton], title: TOOLTIP_TEXT[getCurrentLanguage()].ADD_SHIPPING_ADDRESS, }); - - this.createShippingAddressButton.getHTML().append(this.shippingLogo); - - observeStore(selectCurrentLanguage, () => { - this.createShippingAddressButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].ADD_SHIPPING_ADDRESS; - }); - - return this.createShippingAddressButton; } private createHTML(): HTMLDivElement { @@ -81,6 +66,10 @@ class UserAddressView { cssClasses: [styles.addressesWrapper], tag: 'div', }); + + this.createBillingAddressButton.getHTML().append(this.billingLogo); + this.createShippingAddressButton.getHTML().append(this.shippingLogo); + this.addressesWrapper.append( this.createBillingAddressButton.getHTML(), this.createShippingAddressButton.getHTML(), @@ -97,6 +86,13 @@ class UserAddressView { return this.shippingLogo; } + private observeStoreChanges(): void { + observeStore(selectCurrentLanguage, () => { + this.createBillingAddressButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].ADD_BILLING_ADDRESS; + this.createShippingAddressButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].ADD_SHIPPING_ADDRESS; + }); + } + public getAddressesListWrapper(): HTMLUListElement { return this.addressesListWrapper; } diff --git a/src/widgets/UserInfo/view/UserInfoView.ts b/src/widgets/UserInfo/view/UserInfoView.ts index 0e27e466..ff641999 100644 --- a/src/widgets/UserInfo/view/UserInfoView.ts +++ b/src/widgets/UserInfo/view/UserInfoView.ts @@ -42,84 +42,54 @@ class UserInfoView { this.editInfoButton = this.createEditInfoButton(); this.editPasswordButton = this.createEditPasswordButton(); this.userInfoWrapper = this.createUserInfoWrapper(); + + this.observeStoreChanges(); } private createBirthDate(): HTMLSpanElement { - this.birthDate = createBaseElement({ + return createBaseElement({ cssClasses: [styles.info], innerContent: userInfoDateOfBirth(this.currentUser.birthDate), tag: 'span', }); - - observeStore(selectCurrentLanguage, () => { - this.birthDate.textContent = userInfoDateOfBirth(this.currentUser.birthDate); - }); - return this.birthDate; } private createEditInfoButton(): ButtonModel { - this.editInfoButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.editInfoButton], text: BUTTON_TEXT[getCurrentLanguage()].EDIT_INFO, }); - - observeCurrentLanguage(this.editInfoButton.getHTML(), BUTTON_TEXT, BUTTON_TEXT_KEY.EDIT_INFO); - - return this.editInfoButton; } private createEditPasswordButton(): ButtonModel { - this.editPasswordButton = new ButtonModel({ + return new ButtonModel({ classes: [styles.editPasswordButton], title: TOOLTIP_TEXT[getCurrentLanguage()].EDIT_PASSWORD, }); - - this.editPasswordButton.getHTML().append(this.logo); - - observeStore(selectCurrentLanguage, () => { - this.editPasswordButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].EDIT_PASSWORD; - }); - - return this.editPasswordButton; } private createEmail(): HTMLSpanElement { - this.email = createBaseElement({ + return createBaseElement({ cssClasses: [styles.info], innerContent: userInfoEmail(this.currentUser.email), tag: 'span', }); - - observeStore(selectCurrentLanguage, () => { - this.email.textContent = userInfoEmail(this.currentUser.email); - }); - return this.email; } private createFirstName(): HTMLSpanElement { - this.firstName = createBaseElement({ + return createBaseElement({ cssClasses: [styles.info], innerContent: userInfoName(this.currentUser.firstName), tag: 'span', }); - - observeStore(selectCurrentLanguage, () => { - this.firstName.textContent = userInfoName(this.currentUser.firstName); - }); - return this.firstName; } private createLastName(): HTMLSpanElement { - this.lastName = createBaseElement({ + return createBaseElement({ cssClasses: [styles.info], innerContent: userInfoLastName(this.currentUser.lastName), tag: 'span', }); - - observeStore(selectCurrentLanguage, () => { - this.lastName.textContent = userInfoLastName(this.currentUser.lastName); - }); - return this.lastName; } private createLogo(): HTMLDivElement { @@ -135,6 +105,9 @@ class UserInfoView { cssClasses: [styles.userInfoWrapper, styles.hidden], tag: 'div', }); + + this.editPasswordButton.getHTML().append(this.logo); + this.userInfoWrapper.append( this.firstName, this.lastName, @@ -146,6 +119,17 @@ class UserInfoView { return this.userInfoWrapper; } + private observeStoreChanges(): void { + observeStore(selectCurrentLanguage, () => { + this.birthDate.textContent = userInfoDateOfBirth(this.currentUser.birthDate); + this.email.textContent = userInfoEmail(this.currentUser.email); + this.firstName.textContent = userInfoName(this.currentUser.firstName); + this.lastName.textContent = userInfoLastName(this.currentUser.lastName); + this.editPasswordButton.getHTML().title = TOOLTIP_TEXT[getCurrentLanguage()].EDIT_PASSWORD; + }); + observeCurrentLanguage(this.editInfoButton.getHTML(), BUTTON_TEXT, BUTTON_TEXT_KEY.EDIT_INFO); + } + public getBirthDate(): HTMLSpanElement { return this.birthDate; }