interface: check notification availability

This commit is contained in:
Tyler Brown Cifu Shuster 2021-05-13 20:23:32 -07:00
parent 1740a7046e
commit bbd244e634
2 changed files with 5 additions and 6 deletions

View File

@ -339,7 +339,7 @@ function added(json: any, state: HarkState): HarkState {
const { index, notification } = data;
const time = makePatDa(data.time);
if (!useHarkState.getState().doNotDisturb) {
if ('Notification' in window && !useHarkState.getState().doNotDisturb) {
const description = describeNotification(data);
const meta = useMetadataState.getState();
const referent = 'graph' in data.index ? meta.associations.graph[data.index.graph.graph]?.metadata?.title ?? data.index.graph : meta.associations.groups[data.index.group.group]?.metadata?.title ?? data.index.group;

View File

@ -7,14 +7,13 @@ import {
ManagedToggleSwitchField as Toggle, Text
} from '@tlon/indigo-react';
import { Form, Formik, FormikHelpers } from 'formik';
import { Form, FormikHelpers } from 'formik';
import _ from 'lodash';
import React, { useCallback, useState } from 'react';
import GlobalApi from '~/logic/api/global';
import { isWatching } from '~/logic/lib/hark';
import useHarkState from '~/logic/state/hark';
import { AsyncButton } from '~/views/components/AsyncButton';
import {FormikOnBlur} from '~/views/components/FormikOnBlur';
import { FormikOnBlur } from '~/views/components/FormikOnBlur';
import { BackButton } from './BackButton';
import { GroupChannelPicker } from './GroupChannelPicker';
@ -74,7 +73,7 @@ export function NotificationPreferences(props: {
}
}, [api, graphConfig, dnd]);
const [notificationsAllowed, setNotificationsAllowed] = useState(Notification.permission !== 'default');
const [notificationsAllowed, setNotificationsAllowed] = useState('Notification' in window && Notification.permission !== 'default');
return (
<>
@ -92,7 +91,7 @@ export function NotificationPreferences(props: {
<FormikOnBlur initialValues={initialValues} onSubmit={onSubmit}>
<Form>
<Col gapY="4">
{notificationsAllowed
{notificationsAllowed || !('Notification' in window)
? null
: <Button alignSelf='flex-start' onClick={() => {
Notification.requestPermission().then(() => {