iOS/Sources/App/Frontend/Extensions/WebViewController+PostOnboarding.swift
Bruno Pantaleão Gonçalves e17f81f64b
Organize webview folder (#4324)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2026-02-08 15:18:43 +01:00

29 lines
1020 B
Swift

import Foundation
import Shared
import SwiftUI
// MARK: - Post onboarding
extension WebViewController {
func postOnboardingNotificationPermission() {
// 3 seconds feels a good timin to show this notification after the user has onboarded
let delayedSeconds: CGFloat = 3
DispatchQueue.main.asyncAfter(deadline: .now() + delayedSeconds) { [weak self] in
Task {
let settings = await Current.userNotificationCenter.notificationSettings()
if ![.authorized, .denied].contains(settings.authorizationStatus) {
self?.showNotificationPermissionRequest()
}
}
}
}
private func showNotificationPermissionRequest() {
let view = NotificationPermissionRequestView().embeddedInHostingController()
view.modalPresentationStyle = .overFullScreen
view.view.backgroundColor = .clear
view.modalTransitionStyle = .crossDissolve
present(view, animated: true)
}
}