<Callout>
  Remember, if you use TypeScript for your development, you can use the
  PushNotificationPermissionStatus enum for comparison as well!
</Callout>

```js
async function handlePermissions() {
  const status = await Notifications.Push.getPermissionStatus();
  if (status === 'GRANTED') {
    // no further action is required, user has already granted permissions
    return;
  }
  if (status === 'DENIED') {
    // further attempts to request permissions will no longer do anything
    myFunctionToGracefullyDegradeMyApp();
    return;
  }
  if (status === 'SHOULD_REQUEST') {
    // go ahead and request permissions from the user
    await Notifications.Push.requestPermissions();
  }
  if (status === 'SHOULD_EXPLAIN_THEN_REQUEST') {
    // you should display some explanation to your user before requesting permissions
    await myFunctionExplainingPermissionsRequest();
    // then request permissions
    await Notifications.Push.requestPermissions();
  }
}
```
