Convert ContentView navigation links
This commit is contained in:
committed by
William Casarin
parent
f361f55bd5
commit
8258c5beb0
@@ -82,14 +82,6 @@ struct ContentView: View {
|
|||||||
@State var damus_state: DamusState? = nil
|
@State var damus_state: DamusState? = nil
|
||||||
@SceneStorage("ContentView.selected_timeline") var selected_timeline: Timeline = .home
|
@SceneStorage("ContentView.selected_timeline") var selected_timeline: Timeline = .home
|
||||||
@State var is_deleted_account: Bool = false
|
@State var is_deleted_account: Bool = false
|
||||||
@State var active_profile: String? = nil
|
|
||||||
@State var active_search: NostrFilter? = nil
|
|
||||||
@State var active_event: NostrEvent? = nil
|
|
||||||
@State var profile_open: Bool = false
|
|
||||||
@State var thread_open: Bool = false
|
|
||||||
@State var search_open: Bool = false
|
|
||||||
@State var wallet_open: Bool = false
|
|
||||||
@State var active_nwc: WalletConnectURL? = nil
|
|
||||||
@State var muting: String? = nil
|
@State var muting: String? = nil
|
||||||
@State var confirm_mute: Bool = false
|
@State var confirm_mute: Bool = false
|
||||||
@State var user_muted_confirm: Bool = false
|
@State var user_muted_confirm: Bool = false
|
||||||
@@ -156,10 +148,7 @@ struct ContentView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func popToRoot() {
|
func popToRoot() {
|
||||||
profile_open = false
|
navigationCoordinator.popToRoot()
|
||||||
thread_open = false
|
|
||||||
search_open = false
|
|
||||||
wallet_open = false
|
|
||||||
isSideBarOpened = false
|
isSideBarOpened = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,21 +159,6 @@ struct ContentView: View {
|
|||||||
|
|
||||||
func MainContent(damus: DamusState) -> some View {
|
func MainContent(damus: DamusState) -> some View {
|
||||||
VStack {
|
VStack {
|
||||||
NavigationLink(destination: WalletView(damus_state: damus, model: damus_state!.wallet), isActive: $wallet_open) {
|
|
||||||
EmptyView()
|
|
||||||
}
|
|
||||||
NavigationLink(destination: MaybeProfileView, isActive: $profile_open) {
|
|
||||||
EmptyView()
|
|
||||||
}
|
|
||||||
if let active_event {
|
|
||||||
let thread = ThreadModel(event: active_event, damus_state: damus_state!)
|
|
||||||
NavigationLink(destination: ThreadView(state: damus_state!, thread: thread), isActive: $thread_open) {
|
|
||||||
EmptyView()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
NavigationLink(destination: MaybeSearchView, isActive: $search_open) {
|
|
||||||
EmptyView()
|
|
||||||
}
|
|
||||||
switch selected_timeline {
|
switch selected_timeline {
|
||||||
case .search:
|
case .search:
|
||||||
if #available(iOS 16.0, *) {
|
if #available(iOS 16.0, *) {
|
||||||
@@ -226,28 +200,6 @@ struct ContentView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var MaybeSearchView: some View {
|
|
||||||
Group {
|
|
||||||
if let search = self.active_search {
|
|
||||||
SearchView(appstate: damus_state!, search: SearchModel(state: damus_state!, search: search))
|
|
||||||
} else {
|
|
||||||
EmptyView()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var MaybeProfileView: some View {
|
|
||||||
Group {
|
|
||||||
if let pk = self.active_profile {
|
|
||||||
let profile_model = ProfileModel(pubkey: pk, damus: damus_state!)
|
|
||||||
let followers = FollowersModel(damus_state: damus_state!, target: pk)
|
|
||||||
ProfileView(damus_state: damus_state!, profile: profile_model, followers: followers)
|
|
||||||
} else {
|
|
||||||
EmptyView()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func MaybeReportView(target: ReportTarget) -> some View {
|
func MaybeReportView(target: ReportTarget) -> some View {
|
||||||
Group {
|
Group {
|
||||||
if let damus_state {
|
if let damus_state {
|
||||||
@@ -264,25 +216,29 @@ struct ContentView: View {
|
|||||||
|
|
||||||
func open_event(ev: NostrEvent) {
|
func open_event(ev: NostrEvent) {
|
||||||
popToRoot()
|
popToRoot()
|
||||||
self.active_event = ev
|
|
||||||
self.thread_open = true
|
let thread = ThreadModel(event: ev, damus_state: damus_state!)
|
||||||
|
navigationCoordinator.push(route: Route.Thread(thread: thread))
|
||||||
}
|
}
|
||||||
|
|
||||||
func open_wallet(nwc: WalletConnectURL) {
|
func open_wallet(nwc: WalletConnectURL) {
|
||||||
self.damus_state!.wallet.new(nwc)
|
self.damus_state!.wallet.new(nwc)
|
||||||
self.wallet_open = true
|
navigationCoordinator.push(route: Route.Wallet(wallet: damus_state!.wallet))
|
||||||
}
|
}
|
||||||
|
|
||||||
func open_profile(id: String) {
|
func open_profile(id: String) {
|
||||||
popToRoot()
|
popToRoot()
|
||||||
self.active_profile = id
|
|
||||||
self.profile_open = true
|
let profile_model = ProfileModel(pubkey: id, damus: damus_state!)
|
||||||
|
let followers = FollowersModel(damus_state: damus_state!, target: id)
|
||||||
|
navigationCoordinator.push(route: Route.Profile(profile: profile_model, followers: followers))
|
||||||
}
|
}
|
||||||
|
|
||||||
func open_search(filt: NostrFilter) {
|
func open_search(filt: NostrFilter) {
|
||||||
popToRoot()
|
popToRoot()
|
||||||
self.active_search = filt
|
|
||||||
self.search_open = true
|
let search = SearchModel(state: damus_state!, search: filt)
|
||||||
|
navigationCoordinator.push(route: Route.Search(search: search))
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
|
|||||||
Reference in New Issue
Block a user