Skip to content

Commit

Permalink
Optimize UX for macOS SDK (#78)
Browse files Browse the repository at this point in the history
* Optimize UX for ForumateMac target

* Optimize new community for macOS

* Add AcknowledgementsWindowView to fix toolbar issue
  • Loading branch information
Kyle-Ye committed Nov 24, 2023
1 parent 6836058 commit 86707f3
Show file tree
Hide file tree
Showing 20 changed files with 345 additions and 70 deletions.
66 changes: 62 additions & 4 deletions Forumate.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,6 @@
279283F82B0D2A9800094683 /* InboxTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278E53EF2A18E83000DCD159 /* InboxTab.swift */; };
279283F92B0D2A9800094683 /* InboxTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278E53EF2A18E83000DCD159 /* InboxTab.swift */; };
279283FA2B0D2A9900094683 /* InboxTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278E53EF2A18E83000DCD159 /* InboxTab.swift */; };
279283FC2B0D2A9C00094683 /* SettingsTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278E53ED2A18E83000DCD159 /* SettingsTab.swift */; };
279283FD2B0D2A9C00094683 /* SettingsTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278E53ED2A18E83000DCD159 /* SettingsTab.swift */; };
279283FE2B0D2A9F00094683 /* SettingsTabRoot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 270097CB2A19D66E00CA01B5 /* SettingsTabRoot.swift */; };
279283FF2B0D2A9F00094683 /* SettingsTabRoot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 270097CB2A19D66E00CA01B5 /* SettingsTabRoot.swift */; };
Expand Down Expand Up @@ -328,7 +327,6 @@
2792841A2B0D2AC200094683 /* Setting.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27DFFCE72A2B13EB005661BD /* Setting.swift */; };
2792841B2B0D2AC200094683 /* OpenLinkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C00A312A2CC4F400CA9ACD /* OpenLinkType.swift */; };
2792841C2B0D2AC200094683 /* ForumateSubscriptionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 277AE5F02AA8E05F000017B8 /* ForumateSubscriptionView.swift */; };
2792841D2B0D2AC200094683 /* GeneralSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 273AFBD52A1A801500DD08F5 /* GeneralSection.swift */; };
2792841E2B0D2AC200094683 /* IconSelectorSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27D219112A75954900501849 /* IconSelectorSection.swift */; };
2792841F2B0D2AC200094683 /* SupportSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2735D6052A2F850B000D5966 /* SupportSection.swift */; };
279284202B0D2AC200094683 /* PrivacyPolicySection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2735D6072A2F852D000D5966 /* PrivacyPolicySection.swift */; };
Expand Down Expand Up @@ -408,6 +406,7 @@
2792848A2B0D2E0300094683 /* InfoPlist.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 279284892B0D2E0300094683 /* InfoPlist.xcstrings */; };
27AFDC952AADB2380040C4F1 /* SDWebImageSVGCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 27AFDC942AADB2380040C4F1 /* SDWebImageSVGCoder */; };
27AFDC972AADB23E0040C4F1 /* SDWebImageSVGCoder in Frameworks */ = {isa = PBXBuildFile; productRef = 27AFDC962AADB23E0040C4F1 /* SDWebImageSVGCoder */; };
27BC5EFF2B110D6900A64707 /* AcknowledgementsWindowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27BC5EFE2B110D6900A64707 /* AcknowledgementsWindowView.swift */; };
27C00A2C2A2CC10700CA9ACD /* HtmlText in Frameworks */ = {isa = PBXBuildFile; productRef = 27C00A2B2A2CC10700CA9ACD /* HtmlText */; };
27C00A302A2CC10F00CA9ACD /* HtmlText in Frameworks */ = {isa = PBXBuildFile; productRef = 27C00A2F2A2CC10F00CA9ACD /* HtmlText */; };
27C00A322A2CC4F400CA9ACD /* OpenLinkType.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27C00A312A2CC4F400CA9ACD /* OpenLinkType.swift */; };
Expand Down Expand Up @@ -437,6 +436,13 @@
27DFFCF12A2B2FD3005661BD /* TopicDetailWindowModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27DFFCEF2A2B2FD3005661BD /* TopicDetailWindowModel.swift */; };
27DFFCF72A2B35AB005661BD /* DiscourseKit in Frameworks */ = {isa = PBXBuildFile; productRef = 27DFFCF62A2B35AB005661BD /* DiscourseKit */; };
27DFFCF92A2B35B3005661BD /* DiscourseKit in Frameworks */ = {isa = PBXBuildFile; productRef = 27DFFCF82A2B35B3005661BD /* DiscourseKit */; };
27E661262B0FC18000C8366C /* SettingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E661252B0FC18000C8366C /* SettingView.swift */; };
27E6612B2B0FC2E900C8366C /* GeneralSettingTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E6612A2B0FC2E900C8366C /* GeneralSettingTab.swift */; };
27E661312B0FCD3F00C8366C /* SupportSettingTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E661302B0FCD3F00C8366C /* SupportSettingTab.swift */; };
27E661332B0FCD4900C8366C /* PrivacySettingTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E661322B0FCD4900C8366C /* PrivacySettingTab.swift */; };
27E661352B0FCD5600C8366C /* ThemeSettingTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E661342B0FCD5600C8366C /* ThemeSettingTab.swift */; };
27E661362B0FD08200C8366C /* GeneralSection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 273AFBD52A1A801500DD08F5 /* GeneralSection.swift */; };
27E661382B0FD6C500C8366C /* PlusSettingTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27E661372B0FD6C400C8366C /* PlusSettingTab.swift */; };
27F4340A2AAC131E0042F681 /* ContributorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F434092AAC131E0042F681 /* ContributorView.swift */; };
27F4340C2AAC15840042F681 /* PlusManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F4340B2AAC15840042F681 /* PlusManager.swift */; };
27F4340D2AAC15840042F681 /* PlusManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 27F4340B2AAC15840042F681 /* PlusManager.swift */; };
Expand Down Expand Up @@ -578,6 +584,7 @@
279284852B0D2DEB00094683 /* InfoPlist.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = InfoPlist.xcstrings; sourceTree = "<group>"; };
279284872B0D2DFA00094683 /* InfoPlist.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = InfoPlist.xcstrings; sourceTree = "<group>"; };
279284892B0D2E0300094683 /* InfoPlist.xcstrings */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json.xcstrings; path = InfoPlist.xcstrings; sourceTree = "<group>"; };
27BC5EFE2B110D6900A64707 /* AcknowledgementsWindowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AcknowledgementsWindowView.swift; sourceTree = "<group>"; };
27C00A2A2A2CC0FE00CA9ACD /* HtmlText */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = HtmlText; sourceTree = "<group>"; };
27C00A312A2CC4F400CA9ACD /* OpenLinkType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenLinkType.swift; sourceTree = "<group>"; };
27C00A352A2CC51B00CA9ACD /* SplitViewStyleType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitViewStyleType.swift; sourceTree = "<group>"; };
Expand All @@ -593,6 +600,12 @@
27DFFCE22A2B0509005661BD /* View+Size.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Size.swift"; sourceTree = "<group>"; };
27DFFCE72A2B13EB005661BD /* Setting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Setting.swift; sourceTree = "<group>"; };
27DFFCEF2A2B2FD3005661BD /* TopicDetailWindowModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TopicDetailWindowModel.swift; sourceTree = "<group>"; };
27E661252B0FC18000C8366C /* SettingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingView.swift; sourceTree = "<group>"; };
27E6612A2B0FC2E900C8366C /* GeneralSettingTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingTab.swift; sourceTree = "<group>"; };
27E661302B0FCD3F00C8366C /* SupportSettingTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SupportSettingTab.swift; sourceTree = "<group>"; };
27E661322B0FCD4900C8366C /* PrivacySettingTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivacySettingTab.swift; sourceTree = "<group>"; };
27E661342B0FCD5600C8366C /* ThemeSettingTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingTab.swift; sourceTree = "<group>"; };
27E661372B0FD6C400C8366C /* PlusSettingTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlusSettingTab.swift; sourceTree = "<group>"; };
27EEA08629EFCD1B00ADA5BE /* Forumate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Forumate.app; sourceTree = BUILT_PRODUCTS_DIR; };
27F434092AAC131E0042F681 /* ContributorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContributorView.swift; sourceTree = "<group>"; };
27F4340B2AAC15840042F681 /* PlusManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlusManager.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -714,6 +727,8 @@
children = (
2722B93C2B0C7A8B00D24617 /* ForumateApp.swift */,
2722B93E2B0C7A8B00D24617 /* ContentView.swift */,
27E661282B0FC2B500C8366C /* Scene */,
27E661242B0FC16800C8366C /* View */,
2722B9402B0C7A8C00D24617 /* Assets.xcassets */,
279284872B0D2DFA00094683 /* InfoPlist.xcstrings */,
);
Expand Down Expand Up @@ -1168,6 +1183,14 @@
path = ForumateVision;
sourceTree = "<group>";
};
27BC5EFD2B110D4A00A64707 /* Acknowledgements */ = {
isa = PBXGroup;
children = (
27BC5EFE2B110D6900A64707 /* AcknowledgementsWindowView.swift */,
);
path = Acknowledgements;
sourceTree = "<group>";
};
27C8789E2A3F6E7E00AECD06 /* TestFlight */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1206,6 +1229,35 @@
path = Model;
sourceTree = "<group>";
};
27E661242B0FC16800C8366C /* View */ = {
isa = PBXGroup;
children = (
);
path = View;
sourceTree = "<group>";
};
27E661282B0FC2B500C8366C /* Scene */ = {
isa = PBXGroup;
children = (
27BC5EFD2B110D4A00A64707 /* Acknowledgements */,
27E661292B0FC2BC00C8366C /* Settings */,
);
path = Scene;
sourceTree = "<group>";
};
27E661292B0FC2BC00C8366C /* Settings */ = {
isa = PBXGroup;
children = (
27E661252B0FC18000C8366C /* SettingView.swift */,
27E6612A2B0FC2E900C8366C /* GeneralSettingTab.swift */,
27E661372B0FD6C400C8366C /* PlusSettingTab.swift */,
27E661342B0FCD5600C8366C /* ThemeSettingTab.swift */,
27E661302B0FCD3F00C8366C /* SupportSettingTab.swift */,
27E661322B0FCD4900C8366C /* PrivacySettingTab.swift */,
);
path = Settings;
sourceTree = "<group>";
};
27EEA07D29EFCD1B00ADA5BE = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -1628,14 +1680,15 @@
2722B9522B0C7CC100D24617 /* AppDelegate.swift in Sources */,
279284202B0D2AC200094683 /* PrivacyPolicySection.swift in Sources */,
2722B99A2B0C7E5B00D24617 /* ThemeManager.swift in Sources */,
2792841D2B0D2AC200094683 /* GeneralSection.swift in Sources */,
27E661312B0FCD3F00C8366C /* SupportSettingTab.swift in Sources */,
2722B9562B0C7CD500D24617 /* AppInfo.swift in Sources */,
2722B95C2B0C7CEB00D24617 /* StarterIntroCardView.swift in Sources */,
279283F92B0D2A9800094683 /* InboxTab.swift in Sources */,
2722B9572B0C7CE700D24617 /* PlaceholderView.swift in Sources */,
279284282B0D2AC200094683 /* ForumatePlusSection.swift in Sources */,
2722B9B02B0C7E6F00D24617 /* EqualHeightHStackLayout.swift in Sources */,
2722B9BA2B0C7E7C00D24617 /* Topic+Preview.swift in Sources */,
27E661352B0FCD5600C8366C /* ThemeSettingTab.swift in Sources */,
2722B97C2B0C7D0400D24617 /* CommunityDetail.swift in Sources */,
2722B95D2B0C7CEB00D24617 /* StarterIntroCard.swift in Sources */,
2722B9AD2B0C7E6F00D24617 /* Toast.swift in Sources */,
Expand All @@ -1654,11 +1707,14 @@
279284212B0D2AC200094683 /* SettingIcon.swift in Sources */,
279284182B0D2AC200094683 /* ThemeSection.swift in Sources */,
2722B9732B0C7D0000D24617 /* AccountMenuButton.swift in Sources */,
27E661262B0FC18000C8366C /* SettingView.swift in Sources */,
279284222B0D2AC200094683 /* PickerStyleType.swift in Sources */,
2722B9992B0C7E5B00D24617 /* PlusManager.swift in Sources */,
27E661362B0FD08200C8366C /* GeneralSection.swift in Sources */,
279284242B0D2AC200094683 /* BoolSetting.swift in Sources */,
2722B9882B0C7D0D00D24617 /* TagView.swift in Sources */,
2722B9B72B0C7E7C00D24617 /* Community+Preview.swift in Sources */,
27E661382B0FD6C500C8366C /* PlusSettingTab.swift in Sources */,
2722B93F2B0C7A8B00D24617 /* ContentView.swift in Sources */,
2722B96D2B0C7CFA00D24617 /* CommunityList.swift in Sources */,
2722B93D2B0C7A8B00D24617 /* ForumateApp.swift in Sources */,
Expand All @@ -1670,14 +1726,15 @@
2722B9A82B0C7E6F00D24617 /* Image+Platform.swift in Sources */,
2722B96F2B0C7CFA00D24617 /* RecommendCommunity.swift in Sources */,
2722B9AC2B0C7E6F00D24617 /* JSONRawRepresentable.swift in Sources */,
27E661332B0FCD4900C8366C /* PrivacySettingTab.swift in Sources */,
2722B9742B0C7D0000D24617 /* ViewByMenuButton.swift in Sources */,
2722B9B92B0C7E7C00D24617 /* Category+Preview.swift in Sources */,
279283FC2B0D2A9C00094683 /* SettingsTab.swift in Sources */,
2792841F2B0D2AC200094683 /* SupportSection.swift in Sources */,
2722B9B82B0C7E7C00D24617 /* PreviewContainer.swift in Sources */,
2722B96C2B0C7CFA00D24617 /* CommunityLabel.swift in Sources */,
2722B95E2B0C7CEB00D24617 /* StarterIntro.swift in Sources */,
2722B9952B0C7E4B00D24617 /* TopicDetailWindowModel.swift in Sources */,
27BC5EFF2B110D6900A64707 /* AcknowledgementsWindowView.swift in Sources */,
2722B96B2B0C7CFA00D24617 /* Community.swift in Sources */,
2722B98A2B0C7D0D00D24617 /* TopicLabel.swift in Sources */,
279283FE2B0D2A9F00094683 /* SettingsTabRoot.swift in Sources */,
Expand All @@ -1691,6 +1748,7 @@
2722B9A92B0C7E6F00D24617 /* Text+Date.swift in Sources */,
279284232B0D2AC200094683 /* ShowMenuBarExtra.swift in Sources */,
2722B9AE2B0C7E6F00D24617 /* Logger+Extension.swift in Sources */,
27E6612B2B0FC2E900C8366C /* GeneralSettingTab.swift in Sources */,
2722B9702B0C7CFA00D24617 /* NewCommunity.swift in Sources */,
279284032B0D2AA700094683 /* SettingsTabDestination.swift in Sources */,
279284262B0D2AC200094683 /* ShowRecommendCommunity.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/Kyle-Ye/AcknowKit.git",
"state" : {
"revision" : "f4b73e729fc51d53c2046ad89e3ac78560ea46f8",
"version" : "0.0.4"
"revision" : "3f4b012df7b8e5836f5b6e0714229ccca06aa78e",
"version" : "0.0.6"
}
},
{
Expand All @@ -23,8 +23,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/QMUI/LookinServer/",
"state" : {
"revision" : "943be9791316830f8cc550f5d7995d26a05aae1d",
"version" : "1.2.3"
"revision" : "6030404aea08f6a4db8f0a95e79d36810ef4254c",
"version" : "1.2.4"
}
},
{
Expand All @@ -41,8 +41,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/SDWebImage/SDWebImage.git",
"state" : {
"revision" : "fd1950de05a5ad77cb252fd88576c1e1809ee50d",
"version" : "5.18.4"
"revision" : "1b9a2e902cbde5fdf362faa0f4fd76ea74d74305",
"version" : "5.18.5"
}
},
{
Expand Down
36 changes: 10 additions & 26 deletions Forumate/ForumateMac/ContentView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,43 +7,27 @@

import DiscourseKit
import SwiftUI
import SafariServices

struct ContentView: View {
@EnvironmentObject private var appState: AppState

@State private var showStarterIntro = false

var body: some View {
TabView {
TopicsTab()
.tabItem {
Label("Topics", systemImage: "doc.text.image")
TopicsTab()
.onAppear {
if appState.shouldShowStarterIntro {
showStarterIntro = true
}
#if DEBUG
InboxTab()
.tabItem {
Label("Inbox", systemImage: "tray")
if appState.isFirstLaunch {
try? appState.didFirstLaunch()
}
#endif
SettingsTab()
.tabItem {
Label("Settings", systemImage: "gearshape")
}
}
.onAppear {
if appState.shouldShowStarterIntro {
showStarterIntro = true
}
if appState.isFirstLaunch {
try? appState.didFirstLaunch()
.sheet(isPresented: $showStarterIntro) {
appState.updateStarterIntro()
} content: {
StarterIntro()
}
}
.sheet(isPresented: $showStarterIntro) {
appState.updateStarterIntro()
} content: {
StarterIntro()
}
}
}

Expand Down
29 changes: 27 additions & 2 deletions Forumate/ForumateMac/ForumateApp.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ import SwiftUI

@main
struct ForumateApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var delegate
@NSApplicationDelegateAdaptor(AppDelegate.self) private var delegate
@Environment(\.openWindow) private var openWindow

private let container: ModelContainer = {
do {
Expand Down Expand Up @@ -46,12 +47,36 @@ struct ForumateApp: App {
.modifier(AppViewModifier())
.environmentObject(appState)
.environment(plusManager)
.modelContainer(container)
.environment(themeManager)
.modelContainer(container)
}
MenuBarExtra("Forumate Helper", systemImage: "f.square.fill", isInserted: $showMenuBarExtra) {
ForumateHelpMenuBar()
.modifier(AppViewModifier())
.environment(plusManager)
.environment(themeManager)
}
Settings {
SettingView()
.modifier(AppViewModifier())
.environment(plusManager)
.environment(themeManager)
}
WindowGroup("Acknowledgements", id: "acknowledgements") {
AcknowledgementsWindowView()
.modifier(AppViewModifier())
.environment(themeManager)
}
.commands {
CommandGroup(after: .appSettings) {
Button {
openWindow(id: "acknowledgements")
} label: {
Text("Acknowledgements") + Text(verbatim: "...")
}
}
}
.defaultSize(width: 400, height: 300)
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
//
// AcknowledgementsWindowView.swift
// ForumateMac
//
// Created by Kyle on 2023/11/25.
//

import SwiftUI

struct AcknowledgementsWindowView: View {
var body: some View {
NavigationStack {
AcknowSection()
}
}
}

#Preview {
AcknowledgementsWindowView()
}
18 changes: 18 additions & 0 deletions Forumate/ForumateMac/Scene/Settings/GeneralSettingTab.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// GeneralSettingTab.swift
// ForumateMac
//
// Created by Kyle on 2023/11/24.
//

import SwiftUI

struct GeneralSettingTab: View {
var body: some View {
GeneralSection()
}
}

#Preview {
GeneralSettingTab()
}
22 changes: 22 additions & 0 deletions Forumate/ForumateMac/Scene/Settings/PlusSettingTab.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
//
// PlusSettingTab.swift
// ForumateMac
//
// Created by Kyle on 2023/11/24.
//

import SwiftUI

struct PlusSettingTab: View {
var body: some View {
NavigationStack {
ForumatePlusSection()
}
}
}

#Preview {
@State var plusManager = PlusManager()
return PlusSettingTab()
.environment(plusManager)
}
18 changes: 18 additions & 0 deletions Forumate/ForumateMac/Scene/Settings/PrivacySettingTab.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// PrivacySettingTab.swift
// ForumateMac
//
// Created by Kyle on 2023/11/24.
//

import SwiftUI

struct PrivacySettingTab: View {
var body: some View {
PrivacyPolicySection()
}
}

#Preview {
PrivacySettingTab()
}
Loading

0 comments on commit 86707f3

Please sign in to comment.