From 8af6e72675e0182f9af6aed52bd5c48a9fb3fe79 Mon Sep 17 00:00:00 2001
From: Joffrey JAFFEUX <j.jaffeux@gmail.com>
Date: Tue, 29 Dec 2020 20:11:18 +0100
Subject: [PATCH] FIX: ensures recurring works when setting a start date in
 future (#11587)

---
 .../javascripts/lib/local-date-builder.js.es6    |  2 +-
 .../lib/local-date-builder-test.js.es6           | 16 ++++++++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6 b/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6
index 502d05b21a6..123c6150f31 100644
--- a/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6
+++ b/plugins/discourse-local-dates/assets/javascripts/lib/local-date-builder.js.es6
@@ -47,7 +47,7 @@ export default class LocalDateBuilder {
       localTimezone: this.localTimezone,
     });
 
-    if (this.recurring) {
+    if (this.recurring && moment().isAfter(localDate.datetime)) {
       const [count, type] = this.recurring.split(".");
 
       const repetitionsForType = localDate.repetitionsBetweenDates(
diff --git a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6 b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6
index 92baa75838c..06b29e0e269 100644
--- a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6
+++ b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js.es6
@@ -5,6 +5,7 @@ import sinon from "sinon";
 const UTC = "Etc/UTC";
 const SYDNEY = "Australia/Sydney";
 const LOS_ANGELES = "America/Los_Angeles";
+const NEW_YORK = "America/New_York";
 const PARIS = "Europe/Paris";
 const LAGOS = "Africa/Lagos";
 const LONDON = "Europe/London";
@@ -217,6 +218,21 @@ test("option[recurring]", function (assert) {
       "it works to the minute"
     );
   });
+
+  freezeTime({ date: "2020-12-28 09:16" }, () => {
+    assert.buildsCorrectDate(
+      {
+        date: "2021-01-24",
+        time: "08:30",
+        recurring: "1.weeks",
+        timezone: NEW_YORK,
+      },
+      {
+        formated: "January 24, 2021 2:30 PM",
+      },
+      "it works for a future date"
+    );
+  });
 });
 
 test("option[countown]", function (assert) {