diff --git a/app/assets/javascripts/discourse/app/components/bookmark.js b/app/assets/javascripts/discourse/app/components/bookmark.js
index 0ede10b3c25..14997c5aad9 100644
--- a/app/assets/javascripts/discourse/app/components/bookmark.js
+++ b/app/assets/javascripts/discourse/app/components/bookmark.js
@@ -261,7 +261,11 @@ export default Component.extend({
KeyboardShortcuts.unpause();
},
- showExistingReminderAt: notEmpty("model.reminderAt"),
+ @discourseComputed("model.reminderAt")
+ showExistingReminderAt(reminderAt) {
+ return reminderAt && Date.parse(reminderAt) > new Date().getTime();
+ },
+
showDelete: notEmpty("model.id"),
userHasTimezoneSet: notEmpty("userTimezone"),
editingExistingBookmark: and("model", "model.id"),
diff --git a/app/assets/javascripts/discourse/tests/integration/components/bookmark-alert-test.js b/app/assets/javascripts/discourse/tests/integration/components/bookmark-alert-test.js
new file mode 100644
index 00000000000..f90e5415ab4
--- /dev/null
+++ b/app/assets/javascripts/discourse/tests/integration/components/bookmark-alert-test.js
@@ -0,0 +1,70 @@
+import { module, test } from "qunit";
+import { setupRenderingTest } from "discourse/tests/helpers/component-test";
+import { render } from "@ember/test-helpers";
+import { exists } from "discourse/tests/helpers/qunit-helpers";
+import { hbs } from "ember-cli-htmlbars";
+
+module("Integration | Component | bookmark-alert", function (hooks) {
+ setupRenderingTest(hooks);
+
+ hooks.beforeEach(function () {
+ this.setProperties({
+ model: {},
+ closeModal: () => {},
+ afterSave: () => {},
+ afterDelete: () => {},
+ registerOnCloseHandler: () => {},
+ onCloseWithoutSaving: () => {},
+ });
+ });
+
+ test("alert exists for reminder in the future", async function (assert) {
+ let name = "test";
+ let futureDate = new Date();
+ futureDate.setDate(futureDate.getDate() + 10);
+
+ let reminderAt = futureDate.toISOString();
+ this.model = { id: 1, name, reminderAt };
+
+ await render(hbs`
+
+ `);
+
+ assert.ok(
+ exists(".existing-reminder-at-alert"),
+ "alert found for future reminder"
+ );
+ });
+
+ test("alert does not exist for reminder in the past", async function (assert) {
+ let name = "test";
+ let pastDate = new Date();
+ pastDate.setDate(pastDate.getDate() - 1);
+
+ let reminderAt = pastDate.toISOString();
+ this.model = { id: 1, name, reminderAt };
+
+ await render(hbs`
+
+ `);
+
+ assert.ok(
+ !exists(".existing-reminder-at-alert"),
+ "alert not found for past reminder"
+ );
+ });
+});