1
0
Fork 0

Fix policy change not working for push notifications

1. Turns out `policy` needs to be inside `data` hash
2. namedItem(policy) → namedItem('policy')

Super embarrassed that these bugs exist for 7 months since push notifications release.
This commit is contained in:
Lim Chee Aun 2024-03-25 09:20:51 +08:00
parent 27a7bc7627
commit 9d16c6c12a

View file

@ -690,9 +690,10 @@ function PushNotificationsSection({ onClose }) {
) {
setAllowNotifications(true);
const { alerts, policy } = backendSubscription;
console.log('backendSubscription', backendSubscription);
previousPolicyRef.current = policy;
const { elements } = pushFormRef.current;
const policyEl = elements.namedItem(policy);
const policyEl = elements.namedItem('policy');
if (policyEl) policyEl.value = policy;
// alerts is {}, iterate it
Object.keys(alerts).forEach((alert) => {
@ -721,11 +722,12 @@ function PushNotificationsSection({ onClose }) {
<form
ref={pushFormRef}
onChange={() => {
setTimeout(() => {
const values = Object.fromEntries(new FormData(pushFormRef.current));
const allowNotifications = !!values['policy-allow'];
const params = {
policy: values.policy,
data: {
policy: values.policy,
alerts: {
mention: !!values.mention,
favourite: !!values.favourite,
@ -749,7 +751,8 @@ function PushNotificationsSection({ onClose }) {
alertsCount++;
}
});
const policyChanged = previousPolicyRef.current !== params.policy;
const policyChanged =
previousPolicyRef.current !== params.data.policy;
console.log('PN Form', {
values,
@ -780,6 +783,7 @@ function PushNotificationsSection({ onClose }) {
alert('Failed to remove subscription. Please try again.');
});
}
}, 100);
}}
>
<h3>Push Notifications (beta)</h3>