05e005e9ce
Batch of in-progress app work from the working tree. - feat(keyboard): CursorNavigation + CursorDragPad for caret movement; KeyboardSoundFeedback for system key click sounds - feat(dictionary): DictionaryAliasGenerator + PersonalDictionaryEntrySheet; TranscriptPostProcessor quality gate; retire DictionaryLearner - feat(ui): TabBarVisibility handling; drop PageHeaderRow / PageHeaderConfirmButton; refresh views and localizable strings - fix(security): move the hardcoded DeepSeek key out of PreconfiguredKeys.swift into a gitignored PreconfiguredKeys.local.swift (seeded from .example by generate-xcodeproj.sh) - docs(agents): add Conventional Commits versioning + bilingual changelog rules - chore(gitignore): ignore PreconfiguredKeys.local.swift, .cache/, pycache Custom language model / lexicon work stays on feature/custom-language-model-asr. Changelog bullets added under [Unreleased]; no version bump.
37 lines
1.1 KiB
Swift
37 lines
1.1 KiB
Swift
// HelpFeedbackView.swift
|
|
// OSGKeyboard · Main App
|
|
//
|
|
// In-app GitHub Issues page. Reached from Settings → About.
|
|
|
|
import SwiftUI
|
|
import OSGKeyboardShared
|
|
|
|
struct HelpFeedbackView: View {
|
|
@Environment(\.themePalette) private var palette: ThemePalette
|
|
@State private var isLoading = true
|
|
|
|
var body: some View {
|
|
Group {
|
|
if let url = LegalLinks.supportURL {
|
|
ZStack {
|
|
RemoteWebView(url: url, isLoading: $isLoading)
|
|
if isLoading {
|
|
ProgressView()
|
|
.tint(palette.accent)
|
|
}
|
|
}
|
|
} else {
|
|
ContentUnavailableView(
|
|
"settings.support.unavailable.title",
|
|
systemImage: "wifi.slash",
|
|
description: Text("settings.support.unavailable.message")
|
|
)
|
|
}
|
|
}
|
|
.background(palette.background.ignoresSafeArea())
|
|
.navigationTitle("settings.link.support")
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
.hidesTabBarWhenPushed()
|
|
}
|
|
}
|