From bac63930289447fb6f153f45d0226b985c89754a Mon Sep 17 00:00:00 2001 From: Alexandr Romanov Date: Tue, 3 Oct 2023 18:22:04 +0300 Subject: [PATCH] Remove resourses (#13) * Remove resourses * Fix links * Fix * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Fix app * Fix name * Fix CI * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Update build-example.yml * Fix ci * Fix package * Fix CI * Fix CI * Update build-swiftpm.yml * Down network version * Fix StoreKit --- .github/workflows/build-example.yml | 32 +-- .github/workflows/build-swiftpm.yml | 38 ++++ .github/workflows/bump.yml | 8 +- .github/workflows/ci-pull-request.yml | 18 ++ .github/workflows/ci.yml | 26 +++ .gitignore | 8 +- .../IDEFindNavigatorScopes.plist | 5 + .../UserInterfaceState.xcuserstate | Bin 0 -> 230403 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 6 + .../xcschemes/xcschememanagement.plist | 117 ++++++++++ .../Example.xcodeproj/project.pbxproj | 8 - .../contents.xcworkspacedata | 0 .../xcshareddata/IDEWorkspaceChecks.plist | 0 .../UserInterfaceState.xcuserstate | Bin 0 -> 67048 bytes .../xcshareddata/xcschemes/Example.xcscheme | 0 .../xcschemes/xcschememanagement.plist | 22 ++ .../AccentColor.colorset/Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../Example/Assets.xcassets/Contents.json | 0 .../Contents.json | 0 .../Example/ExampleApp.swift | 0 .../Preview Assets.xcassets/Contents.json | 0 .../Example/Resources/AppConfig.plist | 0 .../Example/Resources/Info.plist | 0 .../Example/Resources/Products.storekit | 0 .../Example/Resources/Scripts/swiftgen.yml | 0 .../Example/Router/Alerts.swift | 0 .../Example/Router/Router.swift | 0 .../Example/Router/Screens.swift | 0 .../Example/Router/Tabs.swift | 0 .../AppSettings/AppSettingsPageView.swift | 0 .../AppSettingsPageViewModel.swift | 0 .../Screens/AppSettings/AppSettingsView.swift | 0 .../AppSettings/AppSettingsViewModel.swift | 0 .../Example/Screens/Main/MainView.swift | 0 .../Example/Screens/Main/MainViewModel.swift | 0 .../Screens/Onboarding/OnboardingView.swift | 0 Package.swift | 3 +- .../AttachmentScreen/AttachmentView.swift | 9 +- .../CreateEventScreen/CreateEventView.swift | 1 - .../SaveForView/SaveForView.swift | 1 - .../OversizeKit/LauncherKit/Launcher.swift | 10 - .../Views/About/{ => About}/AboutView.swift | 203 +++++++++++------- .../Views/About/About/AboutViewModel.swift | 39 ++++ .../SettingsKit/Views/SettingsView.swift | 1 - .../StoreScreen/StoreInstuctinsView.swift | 14 +- .../StoreScreen/StoreSpecialOfferView.swift | 9 +- .../StoreKit/StoreScreen/StoreView.swift | 14 +- .../ViewModel/StoreViewModel.swift | 6 +- .../StoreKit/Views/PrmiumBannerRow.swift | 3 - .../OversizePhotoKit/PhotoViewerView.swift | 46 ---- 58 files changed, 443 insertions(+), 204 deletions(-) create mode 100644 .github/workflows/build-swiftpm.yml create mode 100644 .github/workflows/ci-pull-request.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .swiftpm/xcode/package.xcworkspace/xcuserdata/admin.xcuserdatad/IDEFindNavigatorScopes.plist create mode 100644 .swiftpm/xcode/package.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 .swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 .swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist rename {Example => AppExample}/Example.xcodeproj/project.pbxproj (97%) rename {Example => AppExample}/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata (100%) rename {Example => AppExample}/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist (100%) create mode 100644 AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate rename {Example => AppExample}/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme (100%) create mode 100644 AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist rename {Example => AppExample}/Example/Assets.xcassets/AccentColor.colorset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AlternateAppIcon1.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AlternateAppIcon2.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AlternateAppIcon3.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AlternateAppIcon4.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AlternateAppIcon5.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AlternateAppIcon6.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AlternateAppIcon7.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/Contents.json (100%) rename {Example => AppExample}/Example/Assets.xcassets/OnbardingBackground.imageset/Contents.json (100%) rename {Example => AppExample}/Example/ExampleApp.swift (100%) rename {Example => AppExample}/Example/Preview Content/Preview Assets.xcassets/Contents.json (100%) rename {Example => AppExample}/Example/Resources/AppConfig.plist (100%) rename {Example => AppExample}/Example/Resources/Info.plist (100%) rename {Example => AppExample}/Example/Resources/Products.storekit (100%) rename {Example => AppExample}/Example/Resources/Scripts/swiftgen.yml (100%) rename {Example => AppExample}/Example/Router/Alerts.swift (100%) rename {Example => AppExample}/Example/Router/Router.swift (100%) rename {Example => AppExample}/Example/Router/Screens.swift (100%) rename {Example => AppExample}/Example/Router/Tabs.swift (100%) rename {Example => AppExample}/Example/Screens/AppSettings/AppSettingsPageView.swift (100%) rename {Example => AppExample}/Example/Screens/AppSettings/AppSettingsPageViewModel.swift (100%) rename {Example => AppExample}/Example/Screens/AppSettings/AppSettingsView.swift (100%) rename {Example => AppExample}/Example/Screens/AppSettings/AppSettingsViewModel.swift (100%) rename {Example => AppExample}/Example/Screens/Main/MainView.swift (100%) rename {Example => AppExample}/Example/Screens/Main/MainViewModel.swift (100%) rename {Example => AppExample}/Example/Screens/Onboarding/OnboardingView.swift (100%) rename Sources/OversizeKit/SettingsKit/Views/About/{ => About}/AboutView.swift (73%) create mode 100644 Sources/OversizeKit/SettingsKit/Views/About/About/AboutViewModel.swift delete mode 100644 Sources/OversizePhotoKit/PhotoViewerView.swift diff --git a/.github/workflows/build-example.yml b/.github/workflows/build-example.yml index 77fa1e3..83322c4 100644 --- a/.github/workflows/build-example.yml +++ b/.github/workflows/build-example.yml @@ -1,16 +1,15 @@ name: Build Example on: - push: - branches: [ main, develop ] - pull_request: - branches: [ main ] + workflow_dispatch: + workflow_call: + +concurrency: + group: ${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: DEVELOPER_DIR: /Applications/Xcode_15.0.app/Contents/Developer - PROJECT_DIR: Example - PROJECT_NAME: Example.xcodeproj - iOSSCHEME: Example jobs: @@ -19,17 +18,24 @@ jobs: runs-on: macOS-13 strategy: matrix: - iosDestination: ['platform=iOS Simulator,OS=16,name=iPhone X','platform=iOS Simulator,OS=17.0,name=iPhone 14'] + iosDestination: ['platform=iOS Simulator,OS=16.0,name=iPhone 14'] steps: - name: Checkout - uses: actions/checkout@v2 - with: - token: ${{ secrets.ACTIONS_TOKEN }} - repository: oversizedev/OversizeResources + uses: actions/checkout@v4 + + - name: Set secret + run: git config --global url."https://${{ secrets.ACTIONS_TOKEN }}:x-oauth-basic@github.com/".insteadOf "https://github.com/" + + + - name: Set pipefail + run: set -euo pipefail + + - name: Set SwiftPM Plugin config + run: defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidatation -bool YES - name: Build iOS run: | - xcodebuild clean build -project "Example/Example.xcodeproj" -scheme "Example" | xcpretty && exit ${PIPESTATUS[0]} + xcodebuild clean build -project "AppExample/Example.xcodeproj" -scheme "Example" | xcpretty && exit ${PIPESTATUS[0]} env: destination: ${{ matrix.iosDestination }} diff --git a/.github/workflows/build-swiftpm.yml b/.github/workflows/build-swiftpm.yml new file mode 100644 index 0000000..123d039 --- /dev/null +++ b/.github/workflows/build-swiftpm.yml @@ -0,0 +1,38 @@ +name: Build SwiftPM + +on: + workflow_dispatch: + workflow_call: + +concurrency: + group: ${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +env: + DEVELOPER_DIR: /Applications/Xcode_15.0.app/Contents/Developer + +jobs: + + swiftpm: + name: Build SwiftPM + runs-on: macOS-13 + strategy: + matrix: + packages: [OversizeKit, OversizeAdsKit, OversizeCalendarKit, OversizeContactsKit, OversizeLocationKit, OversizeNoticeKit, OversizeNotificationKit, OversizeOnboardingKit, OversizePhotoKit] + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set secret + run: git config --global url."https://${{ secrets.ACTIONS_TOKEN }}:x-oauth-basic@github.com/".insteadOf "https://github.com/" + + + - name: Set pipefail + run: set -euo pipefail + + - name: Set SwiftPM Plugin config + run: defaults write com.apple.dt.Xcode IDESkipPackagePluginFingerprintValidatation -bool YES + + - name: Build + run: xcodebuild clean build -skipPackagePluginValidation -scheme ${{ matrix.packages }} -destination 'platform=iOS Simulator,name=iPhone 8,OS=16.4' | xcpretty && exit ${PIPESTATUS[0]} diff --git a/.github/workflows/bump.yml b/.github/workflows/bump.yml index fb1699e..68d71ff 100644 --- a/.github/workflows/bump.yml +++ b/.github/workflows/bump.yml @@ -1,8 +1,8 @@ name: Bump version on: - push: - branches: - - main + workflow_dispatch: + workflow_call: + jobs: tag: @@ -14,7 +14,7 @@ jobs: fetch-depth: '0' - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.61.0 + uses: anothrNick/github-tag-action@master env: GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }} WITH_V: false diff --git a/.github/workflows/ci-pull-request.yml b/.github/workflows/ci-pull-request.yml new file mode 100644 index 0000000..3949062 --- /dev/null +++ b/.github/workflows/ci-pull-request.yml @@ -0,0 +1,18 @@ +name: CI - Pull Request +on: + pull_request: + branches: + - 'main' + workflow_dispatch: +jobs: + + build-swiftpm: + name: Build SwiftPM + uses: ./.github/workflows/build-swiftpm.yml + secrets: inherit + + build-example: + name: Build Examples + needs: build-swiftpm + uses: ./.github/workflows/build-example.yml + secrets: inherit diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7705a4c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,26 @@ +name: CI - Push + +on: + push: + branches: ["main"] + workflow_dispatch: + +jobs: + + build-swiftpm: + name: Build SwiftPM + uses: ./.github/workflows/build-swiftpm.yml + secrets: inherit + + build-example: + name: Build Examples + needs: build-swiftpm + uses: ./.github/workflows/build-example.yml + secrets: inherit + + bump: + name: Bump version + needs: build-example + uses: ./.github/workflows/bump.yml + secrets: inherit + diff --git a/.gitignore b/.gitignore index 397bce0..b0a3eb8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,6 @@ .DS_Store /.build -/Packages -xcuserdata/ -DerivedData/ -.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata -.netrc Package.resolved +.swiftpm +xcuserdata/ +DerivedData/ \ No newline at end of file diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/admin.xcuserdatad/IDEFindNavigatorScopes.plist b/.swiftpm/xcode/package.xcworkspace/xcuserdata/admin.xcuserdatad/IDEFindNavigatorScopes.plist new file mode 100644 index 0000000..5dd5da8 --- /dev/null +++ b/.swiftpm/xcode/package.xcworkspace/xcuserdata/admin.xcuserdatad/IDEFindNavigatorScopes.plist @@ -0,0 +1,5 @@ + + + + + diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..e7a3e77e1a9094e6c30c771ce930e5f384ab39ca GIT binary patch literal 230403 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

nM+p(w{ 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 literal 0 HcmV?d00001 diff --git a/.swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/.swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..02d1e09 --- /dev/null +++ b/.swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,6 @@ + + + diff --git a/.swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/.swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..dfa97a4 --- /dev/null +++ b/.swiftpm/xcode/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,117 @@ + + + + + SchemeUserState + + OversizeAdsKit.xcscheme_^#shared#^_ + + orderHint + 0 + + OversizeCalendarKit.xcscheme_^#shared#^_ + + orderHint + 2 + + OversizeContactsKit.xcscheme_^#shared#^_ + + orderHint + 3 + + OversizeKit-Package.xcscheme_^#shared#^_ + + orderHint + 1 + + OversizeKit.xcscheme_^#shared#^_ + + orderHint + 4 + + OversizeKitTests.xcscheme_^#shared#^_ + + orderHint + 13 + + OversizeLocationKit.xcscheme_^#shared#^_ + + orderHint + 5 + + OversizeNoticeKit.xcscheme_^#shared#^_ + + orderHint + 6 + + OversizeNotificationKit.xcscheme_^#shared#^_ + + orderHint + 7 + + OversizeOnboardingKit.xcscheme_^#shared#^_ + + orderHint + 8 + + OversizePhotoKit.xcscheme_^#shared#^_ + + orderHint + 9 + + + SuppressBuildableAutocreation + + OversizeAdsKit + + primary + + + OversizeCalendarKit + + primary + + + OversizeContactsKit + + primary + + + OversizeKit + + primary + + + OversizeKitTests + + primary + + + OversizeLocationKit + + primary + + + OversizeNoticeKit + + primary + + + OversizeNotificationKit + + primary + + + OversizeOnboardingKit + + primary + + + OversizePhotoKit + + primary + + + + + diff --git a/Example/Example.xcodeproj/project.pbxproj b/AppExample/Example.xcodeproj/project.pbxproj similarity index 97% rename from Example/Example.xcodeproj/project.pbxproj rename to AppExample/Example.xcodeproj/project.pbxproj index 619c3e4..b4928e8 100644 --- a/Example/Example.xcodeproj/project.pbxproj +++ b/AppExample/Example.xcodeproj/project.pbxproj @@ -19,10 +19,6 @@ 840CD67F2AC0E39D00C6AAD0 /* AppConfig.plist in Resources */ = {isa = PBXBuildFile; fileRef = 840CD67E2AC0E39D00C6AAD0 /* AppConfig.plist */; }; 840CD6812AC0E39D00C6AAD0 /* Router.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840CD6802AC0E39D00C6AAD0 /* Router.swift */; }; 840CD6832AC0E39D00C6AAD0 /* Tabs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840CD6822AC0E39D00C6AAD0 /* Tabs.swift */; }; - 840CD6862AC0E39D00C6AAD0 /* .gitignore in Resources */ = {isa = PBXBuildFile; fileRef = 840CD6852AC0E39D00C6AAD0 /* .gitignore */; }; - 840CD6882AC0E39D00C6AAD0 /* .swiftformat in Resources */ = {isa = PBXBuildFile; fileRef = 840CD6872AC0E39D00C6AAD0 /* .swiftformat */; }; - 840CD68A2AC0E39D00C6AAD0 /* .swiftlint.yml in Resources */ = {isa = PBXBuildFile; fileRef = 840CD6892AC0E39D00C6AAD0 /* .swiftlint.yml */; }; - 840CD68C2AC0E39D00C6AAD0 /* swiftgen.yml in Resources */ = {isa = PBXBuildFile; fileRef = 840CD68B2AC0E39D00C6AAD0 /* swiftgen.yml */; }; 840CD68E2AC0E39D00C6AAD0 /* ExampleApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 840CD68D2AC0E39D00C6AAD0 /* ExampleApp.swift */; }; 840CD6902AC0E3A600C6AAD0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 840CD68F2AC0E3A600C6AAD0 /* Assets.xcassets */; }; 840CD6932AC0E3A600C6AAD0 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 840CD6922AC0E3A600C6AAD0 /* Preview Assets.xcassets */; }; @@ -268,13 +264,9 @@ buildActionMask = 2147483647; files = ( 840CD6B12AC0E6E200C6AAD0 /* Products.storekit in Resources */, - 840CD68A2AC0E39D00C6AAD0 /* .swiftlint.yml in Resources */, - 840CD68C2AC0E39D00C6AAD0 /* swiftgen.yml in Resources */, - 840CD6862AC0E39D00C6AAD0 /* .gitignore in Resources */, 840CD6932AC0E3A600C6AAD0 /* Preview Assets.xcassets in Resources */, 840CD67F2AC0E39D00C6AAD0 /* AppConfig.plist in Resources */, 840CD6902AC0E3A600C6AAD0 /* Assets.xcassets in Resources */, - 840CD6882AC0E39D00C6AAD0 /* .swiftformat in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AppExample/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from Example/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to AppExample/Example.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/Example/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AppExample/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from Example/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to AppExample/Example.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate b/AppExample/Example.xcodeproj/project.xcworkspace/xcuserdata/admin.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..c5dd800664647955b9b79e6631651d219ccc2976 GIT binary patch literal 67048 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 literal 0 HcmV?d00001 diff --git a/Example/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme b/AppExample/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme similarity index 100% rename from Example/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme rename to AppExample/Example.xcodeproj/xcshareddata/xcschemes/Example.xcscheme diff --git a/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..268deb9 --- /dev/null +++ b/AppExample/Example.xcodeproj/xcuserdata/admin.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + Example.xcscheme_^#shared#^_ + + orderHint + 0 + + + SuppressBuildableAutocreation + + 840CD6622AC0E39D00C6AAD0 + + primary + + + + + diff --git a/Example/Example/Assets.xcassets/AccentColor.colorset/Contents.json b/AppExample/Example/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AccentColor.colorset/Contents.json rename to AppExample/Example/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/Example/Example/Assets.xcassets/AlternateAppIcon1.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AlternateAppIcon1.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AlternateAppIcon1.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AlternateAppIcon1.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/AlternateAppIcon2.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AlternateAppIcon2.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AlternateAppIcon2.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AlternateAppIcon2.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/AlternateAppIcon3.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AlternateAppIcon3.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AlternateAppIcon3.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AlternateAppIcon3.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/AlternateAppIcon4.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AlternateAppIcon4.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AlternateAppIcon4.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AlternateAppIcon4.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/AlternateAppIcon5.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AlternateAppIcon5.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AlternateAppIcon5.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AlternateAppIcon5.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/AlternateAppIcon6.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AlternateAppIcon6.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AlternateAppIcon6.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AlternateAppIcon6.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/AlternateAppIcon7.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AlternateAppIcon7.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AlternateAppIcon7.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AlternateAppIcon7.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/AppIcon.appiconset/Contents.json b/AppExample/Example/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/AppIcon.appiconset/Contents.json rename to AppExample/Example/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Example/Example/Assets.xcassets/Contents.json b/AppExample/Example/Assets.xcassets/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/Contents.json rename to AppExample/Example/Assets.xcassets/Contents.json diff --git a/Example/Example/Assets.xcassets/OnbardingBackground.imageset/Contents.json b/AppExample/Example/Assets.xcassets/OnbardingBackground.imageset/Contents.json similarity index 100% rename from Example/Example/Assets.xcassets/OnbardingBackground.imageset/Contents.json rename to AppExample/Example/Assets.xcassets/OnbardingBackground.imageset/Contents.json diff --git a/Example/Example/ExampleApp.swift b/AppExample/Example/ExampleApp.swift similarity index 100% rename from Example/Example/ExampleApp.swift rename to AppExample/Example/ExampleApp.swift diff --git a/Example/Example/Preview Content/Preview Assets.xcassets/Contents.json b/AppExample/Example/Preview Content/Preview Assets.xcassets/Contents.json similarity index 100% rename from Example/Example/Preview Content/Preview Assets.xcassets/Contents.json rename to AppExample/Example/Preview Content/Preview Assets.xcassets/Contents.json diff --git a/Example/Example/Resources/AppConfig.plist b/AppExample/Example/Resources/AppConfig.plist similarity index 100% rename from Example/Example/Resources/AppConfig.plist rename to AppExample/Example/Resources/AppConfig.plist diff --git a/Example/Example/Resources/Info.plist b/AppExample/Example/Resources/Info.plist similarity index 100% rename from Example/Example/Resources/Info.plist rename to AppExample/Example/Resources/Info.plist diff --git a/Example/Example/Resources/Products.storekit b/AppExample/Example/Resources/Products.storekit similarity index 100% rename from Example/Example/Resources/Products.storekit rename to AppExample/Example/Resources/Products.storekit diff --git a/Example/Example/Resources/Scripts/swiftgen.yml b/AppExample/Example/Resources/Scripts/swiftgen.yml similarity index 100% rename from Example/Example/Resources/Scripts/swiftgen.yml rename to AppExample/Example/Resources/Scripts/swiftgen.yml diff --git a/Example/Example/Router/Alerts.swift b/AppExample/Example/Router/Alerts.swift similarity index 100% rename from Example/Example/Router/Alerts.swift rename to AppExample/Example/Router/Alerts.swift diff --git a/Example/Example/Router/Router.swift b/AppExample/Example/Router/Router.swift similarity index 100% rename from Example/Example/Router/Router.swift rename to AppExample/Example/Router/Router.swift diff --git a/Example/Example/Router/Screens.swift b/AppExample/Example/Router/Screens.swift similarity index 100% rename from Example/Example/Router/Screens.swift rename to AppExample/Example/Router/Screens.swift diff --git a/Example/Example/Router/Tabs.swift b/AppExample/Example/Router/Tabs.swift similarity index 100% rename from Example/Example/Router/Tabs.swift rename to AppExample/Example/Router/Tabs.swift diff --git a/Example/Example/Screens/AppSettings/AppSettingsPageView.swift b/AppExample/Example/Screens/AppSettings/AppSettingsPageView.swift similarity index 100% rename from Example/Example/Screens/AppSettings/AppSettingsPageView.swift rename to AppExample/Example/Screens/AppSettings/AppSettingsPageView.swift diff --git a/Example/Example/Screens/AppSettings/AppSettingsPageViewModel.swift b/AppExample/Example/Screens/AppSettings/AppSettingsPageViewModel.swift similarity index 100% rename from Example/Example/Screens/AppSettings/AppSettingsPageViewModel.swift rename to AppExample/Example/Screens/AppSettings/AppSettingsPageViewModel.swift diff --git a/Example/Example/Screens/AppSettings/AppSettingsView.swift b/AppExample/Example/Screens/AppSettings/AppSettingsView.swift similarity index 100% rename from Example/Example/Screens/AppSettings/AppSettingsView.swift rename to AppExample/Example/Screens/AppSettings/AppSettingsView.swift diff --git a/Example/Example/Screens/AppSettings/AppSettingsViewModel.swift b/AppExample/Example/Screens/AppSettings/AppSettingsViewModel.swift similarity index 100% rename from Example/Example/Screens/AppSettings/AppSettingsViewModel.swift rename to AppExample/Example/Screens/AppSettings/AppSettingsViewModel.swift diff --git a/Example/Example/Screens/Main/MainView.swift b/AppExample/Example/Screens/Main/MainView.swift similarity index 100% rename from Example/Example/Screens/Main/MainView.swift rename to AppExample/Example/Screens/Main/MainView.swift diff --git a/Example/Example/Screens/Main/MainViewModel.swift b/AppExample/Example/Screens/Main/MainViewModel.swift similarity index 100% rename from Example/Example/Screens/Main/MainViewModel.swift rename to AppExample/Example/Screens/Main/MainViewModel.swift diff --git a/Example/Example/Screens/Onboarding/OnboardingView.swift b/AppExample/Example/Screens/Onboarding/OnboardingView.swift similarity index 100% rename from Example/Example/Screens/Onboarding/OnboardingView.swift rename to AppExample/Example/Screens/Onboarding/OnboardingView.swift diff --git a/Package.swift b/Package.swift index 3d81c15..0b2cac8 100644 --- a/Package.swift +++ b/Package.swift @@ -12,7 +12,7 @@ let productionDependencies: [PackageDescription.Package.Dependency] = { [ .package(url: "https://github.com/oversizedev/OversizeResources.git", .upToNextMajor(from: "2.0.0")), .package(url: "https://github.com/hmlongco/Factory.git", .upToNextMajor(from: "2.1.3")), .package(url: "https://github.com/lorenzofiamingo/swiftui-cached-async-image.git", .upToNextMajor(from: "2.1.1")), - .package(url: "https://github.com/oversizedev/OversizeNetwork.git", .upToNextMajor(from: "0.6.0")) + .package(url: "https://github.com/oversizedev/OversizeNetwork.git", .upToNextMajor(from: "0.4.0")) ] }() let developmentDependencies: [PackageDescription.Package.Dependency] = { [ @@ -59,6 +59,7 @@ let package = Package( .product(name: "OversizeLocalizable", package: "OversizeLocalizable"), .product(name: "OversizeResources", package: "OversizeResources"), .product(name: "OversizeNotificationService", package: "OversizeServices"), + .product(name: "OversizeNetwork", package: "OversizeNetwork"), .product(name: "Factory", package: "Factory"), .product(name: "CachedAsyncImage", package: "swiftui-cached-async-image"), ] diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/AttachmentScreen/AttachmentView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/AttachmentScreen/AttachmentView.swift index e9404bc..2d55b53 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/AttachmentScreen/AttachmentView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/AttachmentScreen/AttachmentView.swift @@ -3,7 +3,6 @@ // AttachmentView.swift // -import OversizeResources import OversizeUI import SwiftUI @@ -15,13 +14,13 @@ public struct AttachmentView: View { SectionView { VStack(spacing: .zero) { Row("Add investment") { - IconDeprecated(.paperclip) - .iconColor(.onSurfaceHighEmphasis) + Image.Base.attach + .icon() } Row("Add link") { - IconDeprecated(.link) - .iconColor(.onSurfaceHighEmphasis) + Image.Base.link + .icon() } } } diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift index 188b9cf..b8bd69b 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/CreateEventView.swift @@ -9,7 +9,6 @@ import OversizeCalendarService import OversizeComponents import OversizeCore import OversizeLocalizable -import OversizeResources import OversizeServices import OversizeUI import SwiftUI diff --git a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift index 543fb85..b8ee9d7 100644 --- a/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift +++ b/Sources/OversizeCalendarKit/CreateEventScreen/SaveForView/SaveForView.swift @@ -4,7 +4,6 @@ // import EventKit -import OversizeResources import OversizeUI import SwiftUI diff --git a/Sources/OversizeKit/LauncherKit/Launcher.swift b/Sources/OversizeKit/LauncherKit/Launcher.swift index acbc82d..f2bfced 100644 --- a/Sources/OversizeKit/LauncherKit/Launcher.swift +++ b/Sources/OversizeKit/LauncherKit/Launcher.swift @@ -138,16 +138,6 @@ public extension View { } } -extension View { - func withoutAnimation(action: @escaping () -> Void) { - var transaction = Transaction() - transaction.disablesAnimations = true - withTransaction(transaction) { - action() - } - } -} - struct LockscreenView_Previews: PreviewProvider { static var previews: some View { Launcher { diff --git a/Sources/OversizeKit/SettingsKit/Views/About/AboutView.swift b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift similarity index 73% rename from Sources/OversizeKit/SettingsKit/Views/About/AboutView.swift rename to Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift index 871647e..bf4b853 100644 --- a/Sources/OversizeKit/SettingsKit/Views/About/AboutView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutView.swift @@ -21,6 +21,12 @@ import SwiftUI @Environment(\.presentationMode) var presentationMode @Environment(\.screenSize) var screenSize @Environment(\.iconStyle) var iconStyle: IconStyle + + @StateObject var viewModel: AboutViewModel + + public init() { + _viewModel = StateObject(wrappedValue: AboutViewModel()) + } @State var offset: CGFloat = 0 @@ -60,13 +66,14 @@ import SwiftUI let scale: CGFloat = 2 #endif - public init() {} - public var body: some View { #if os(iOS) PageView(L10n.Settings.about, onOffsetChanged: { offset = $0 }) { list - .surfaceContentRowInsets() + .surfaceContentRowMargins() + .task { + await viewModel.fetchApps() + } } .leadingBar { /* @@ -86,7 +93,82 @@ import SwiftUI #endif } - private var list: some View { + private func appLinks() -> some View { + return ScrollView(.horizontal, showsIndicators: false) { + HStack(alignment: .top, spacing: Space.small) { + switch viewModel.state { + case .initial, .loading: + ForEach(0...6, id: \.self) { _ in + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + .frame(width: 74, height: 74) + } + case .result(let apps, _): + ForEach(apps, id: \.appStoreId) { app in + Button { + isPresentStoreProduct = true + } label: { + VStack(spacing: .xSmall) { + CachedAsyncImage(url: URL(string: "https://cdn.oversize.design/assets/apps/" + app.address + "/icon.png"), urlCache: .imageCache, content: { + $0 + .resizable() + .frame(width: 74, height: 74) + .mask(RoundedRectangle(cornerRadius: .large, + style: .continuous)) + .overlay( + RoundedRectangle(cornerRadius: 16, + style: .continuous) + .stroke(lineWidth: 1) + .opacity(0.15) + ) + + }, placeholder: { + RoundedRectangle(cornerRadius: .large, style: .continuous) + .fillSurfaceSecondary() + .frame(width: 74, height: 74) + }) + + Text(app.name) + .caption(.medium) + .multilineTextAlignment(.center) + .foregroundColor(.onSurfaceMediumEmphasis) + .frame(width: 74) + } + } + .buttonStyle(.scale) + .appStoreOverlay(isPresent: $isPresentStoreProduct, appId: app.appStoreId) + } + case .error: + EmptyView() + } + + + if let authorAllApps = Info.url.developerAllApps { + VStack(spacing: .xSmall) { + Link(destination: authorAllApps) { + ZStack { + RoundedRectangle(cornerRadius: 16, style: .continuous) + .foregroundColor(.surfaceSecondary) + .frame(width: 74, height: 74) + + IconDeprecated(.externalLink) + } + } + + Text("All apps") + .caption(.medium) + .multilineTextAlignment(.center) + .foregroundColor(.onSurfaceMediumEmphasis) + .frame(width: 74) + } + } + + }.padding(.horizontal, .medium) + } + .padding(.bottom, 16) + } + + var list: some View { VStack(spacing: .zero) { image .padding(.top, isLargeScreen ? -70 : 0) @@ -195,69 +277,7 @@ import SwiftUI Spacer() } - ScrollView(.horizontal, showsIndicators: false) { - HStack(alignment: .top, spacing: Space.small) { - let data = Info.all?.apps.filter { $0.id != Info.app.appStoreID } - - ForEach(data ?? []) { app in - Button { - isPresentStoreProduct = true - } label: { - VStack(spacing: .xSmall) { - let imageUrl = "\(Info.links?.company.cdnString ?? "")/assets/apps/\(app.path ?? "")/icon.png" - CachedAsyncImage(url: URL(string: imageUrl), urlCache: .imageCache, content: { - $0 - .resizable() - .frame(width: 74, height: 74) - .mask(RoundedRectangle(cornerRadius: .large, - style: .continuous)) - .overlay( - RoundedRectangle(cornerRadius: 16, - style: .continuous) - .stroke(lineWidth: 1) - .opacity(0.15) - ) - - }, placeholder: { - RoundedRectangle(cornerRadius: .large, style: .continuous) - .fillSurfaceSecondary() - .frame(width: 74, height: 74) - }) - - Text(app.name ?? "") - .caption(.medium) - .multilineTextAlignment(.center) - .foregroundColor(.onSurfaceMediumEmphasis) - .frame(width: 74) - } - } - .buttonStyle(.scale) - .appStoreOverlay(isPresent: $isPresentStoreProduct, appId: app.id) - } - - if let authorAllApps = Info.url.developerAllApps { - VStack(spacing: .xSmall) { - Link(destination: authorAllApps) { - ZStack { - RoundedRectangle(cornerRadius: 16, style: .continuous) - .foregroundColor(.surfaceSecondary) - .frame(width: 74, height: 74) - - IconDeprecated(.externalLink) - } - } - - Text("All apps") - .caption(.medium) - .multilineTextAlignment(.center) - .foregroundColor(.onSurfaceMediumEmphasis) - .frame(width: 74) - } - } - - }.padding(.horizontal, .medium) - } - .padding(.bottom, 16) + appLinks() } } @@ -295,6 +315,43 @@ import SwiftUI private var soclal: some View { HStack(spacing: .small) { +// switch viewModel.state { +// case .initial, .loading: +// ForEach(0...6, id: \.self) { _ in +// Circle() +// .fillSurfaceSecondary() +// .frame(width: 24, height: 24) +// } +// case .result(_, let info): +// ForEach(info.company.socialNetworks, id: \.title) { link in +// if let linkUrl = URL(string: link.url), let iconUrl = URL(string: link.iconUrl) { +// Link(destination: linkUrl) { +// HStack { +// Spacer() +// +// CachedAsyncImage(url: iconUrl, urlCache: .imageCache, scale: scale) { +// $0 +// .resizable() +// .scaledToFit() +// .blur(radius: blur) +// } placeholder: { +// Circle() +// .fillSurfaceSecondary() +// .frame(width: 24, height: 24) +// } +// .offset(y: -(offset * -0.04)) +// +// Spacer() +// } +// } +// } +// } +// case .error: +// EmptyView() +// } + + + if let facebook = Info.url.companyFacebook { Link(destination: facebook) { // Surface { @@ -495,15 +552,3 @@ import SwiftUI } } #endif - -// MARK: - UIScrollView - -// #if os(iOS) -// import UIKit -// extension UIScrollView { -// override open var clipsToBounds: Bool { -// get { false } -// set {} -// } -// } -// #endif diff --git a/Sources/OversizeKit/SettingsKit/Views/About/About/AboutViewModel.swift b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutViewModel.swift new file mode 100644 index 0000000..ee5ec3c --- /dev/null +++ b/Sources/OversizeKit/SettingsKit/Views/About/About/AboutViewModel.swift @@ -0,0 +1,39 @@ +// +// Copyright © 2023 Alexander Romanov +// AboutViewModel.swift, created on 30.09.2023 +// + +import Factory +import OversizeNetwork +import OversizeServices +import SwiftUI + +@MainActor +public class AboutViewModel: ObservableObject { + + @Injected(\.networkService) var networkService + @Published var state: AboutViewModel.State = State.initial + + public init() {} + + public func fetchApps() async { + state = .loading + async let resultApps = networkService.fetchApps() + async let resultInfo = networkService.fetchInfo() + if case let .success(apps) = await resultApps, case let .success(info) = await resultInfo { + state = .result(apps.filter { $0.appStoreId != Info.app.appStoreID }, info) + + } else { + state = .error(.network(type: .noResponse)) + } + } +} + +extension AboutViewModel { + enum State { + case initial + case loading + case result([Components.Schemas.AppShort], Components.Schemas.Info) + case error(AppError) + } +} diff --git a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift index d187adb..dbd5f10 100644 --- a/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift +++ b/Sources/OversizeKit/SettingsKit/Views/SettingsView.swift @@ -49,7 +49,6 @@ import SwiftUI public var body: some View { #if os(iOS) - Group { if !isPortrait, verticalSizeClass == .regular { Group { diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift index 3ed51ac..a736466 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreInstuctinsView.swift @@ -29,16 +29,7 @@ public struct StoreInstuctinsView: View { PageView { offset = $0 } content: { Group { switch viewModel.state { - case .initial: - contentPlaceholder() - .task { - await viewModel.fetchData() - if case let .result(products) = viewModel.state { - await viewModel.updateState(products: products) - } - } - - case .loading: + case .initial, .loading: contentPlaceholder() case let .result(data): content(data: data) @@ -73,6 +64,9 @@ public struct StoreInstuctinsView: View { dismiss() } } + .task { + await viewModel.fetchData() + } #else EmptyView() #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift index a30177b..a1d0b70 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreSpecialOfferView.swift @@ -40,12 +40,6 @@ public struct StoreSpecialOfferView: View { HStack { Spacer() ProgressView() - .task { - await viewModel.fetchData() - if case let .result(products) = viewModel.state { - await viewModel.updateState(products: products) - } - } Spacer() } Spacer() @@ -82,6 +76,9 @@ public struct StoreSpecialOfferView: View { dismiss() } } + .task { + await viewModel.fetchData() + } #else EmptyView() #endif diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift index a8fd138..d14457d 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/StoreView.swift @@ -29,16 +29,7 @@ import SwiftUI PageView { Group { switch viewModel.state { - case .initial: - contentPlaceholder() - .task { - await viewModel.fetchData() - if case let .result(products) = viewModel.state { - await viewModel.updateState(products: products) - } - } - - case .loading: + case .initial, .loading: contentPlaceholder() case let .result(data): content(data: data) @@ -75,6 +66,9 @@ import SwiftUI Fireworks() } } + .task { + await viewModel.fetchData() + } } var titleText: String { diff --git a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift index a3ba2d1..ff710d3 100644 --- a/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift +++ b/Sources/OversizeKit/StoreKit/StoreScreen/ViewModel/StoreViewModel.swift @@ -342,7 +342,11 @@ extension StoreViewModel { } state = .result(finalProducts) log("✅ StoeKit fetched") - // log(finalProducts) + if finalProducts.autoRenewable.isEmpty { + log("❌ NO autoRenewable products") + } else { + log("📦 \(finalProducts.autoRenewable.count) autoRenewable products") + } case let .failure(error): state = .error(error) log("❌ Product not fetched (\(error.title))") diff --git a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift index 373edb9..d479082 100644 --- a/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift +++ b/Sources/OversizeKit/StoreKit/Views/PrmiumBannerRow.swift @@ -37,9 +37,6 @@ public struct PrmiumBannerRow: View { } .task { await viewModel.fetchData() - if case let .result(products) = viewModel.state { - await viewModel.updateState(products: products) - } } } diff --git a/Sources/OversizePhotoKit/PhotoViewerView.swift b/Sources/OversizePhotoKit/PhotoViewerView.swift deleted file mode 100644 index c5d31e4..0000000 --- a/Sources/OversizePhotoKit/PhotoViewerView.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// Copyright © 2023 Alexander Romanov -// PhotoViewerView.swift -// - -import OversizePhotoComponents -import OversizeUI -import SwiftUI - -public struct PhotoViewerView: View { - private let title: String - private let images: [Image] - @State private var isShowPhoto: Bool = false - @Binding private var selection: Int - - public init(_ title: String = "Photos", selection: Binding, images: [Image]) { - self.title = title - self.images = images - _selection = selection - } - - public var body: some View { -// PageView(title) { - VStack(spacing: 0) { -// ModalNavigationBar(title: title) { -// BarButton(.back) -// } - if images.isEmpty { - Text("Not photos") - .title3() - .onSurfaceHighEmphasisForegroundColor() - } else { - PhotoSliderView(selection: $selection, photos: images) - } - } -// .leadingBar { -// BarButton(.back) -// } - } -} - -// struct SwiftUIView_Previews: PreviewProvider { -// static var previews: some View { -// SwiftUIView() -// } -// }