added hstack wrap thing

undo
saint 2024-05-15 11:57:41 -04:00
parent f3d52a23f7
commit 9550790a17
10 changed files with 344 additions and 615 deletions

2
.gitignore vendored
View File

@ -1,3 +1,5 @@
xcuserdata/ xcuserdata/
build/ build/
.DS_Store .DS_Store
.fdignore
.rgignore

View File

@ -9,24 +9,23 @@
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
8514D5BC299EFB780054F185 /* store.db in Resources */ = {isa = PBXBuildFile; fileRef = 8514D5BB299EFB780054F185 /* store.db */; }; 8514D5BC299EFB780054F185 /* store.db in Resources */ = {isa = PBXBuildFile; fileRef = 8514D5BB299EFB780054F185 /* store.db */; };
8514D5BF299F04710054F185 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = 8514D5BE299F04710054F185 /* GRDB */; }; 8514D5BF299F04710054F185 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = 8514D5BE299F04710054F185 /* GRDB */; };
8514D5C2299F04A20054F185 /* GRDBQuery in Frameworks */ = {isa = PBXBuildFile; productRef = 8514D5C1299F04A20054F185 /* GRDBQuery */; };
852774C129A150B100458CA7 /* Line.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852774C029A150B100458CA7 /* Line.swift */; }; 852774C129A150B100458CA7 /* Line.swift in Sources */ = {isa = PBXBuildFile; fileRef = 852774C029A150B100458CA7 /* Line.swift */; };
8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897429B2B86B003F2E16 /* CrownOfThorns.swift */; }; 8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897429B2B86B003F2E16 /* CrownOfThorns.swift */; };
8528897C29BD69B2003F2E16 /* VisibilityTrackingScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897929BD69B1003F2E16 /* VisibilityTrackingScrollView.swift */; }; 8528897C29BD69B2003F2E16 /* VisibilityTrackingScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897929BD69B1003F2E16 /* VisibilityTrackingScrollView.swift */; };
8528897D29BD69B2003F2E16 /* VisibilityTrackingModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897A29BD69B1003F2E16 /* VisibilityTrackingModifier.swift */; }; 8528897D29BD69B2003F2E16 /* VisibilityTrackingModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897A29BD69B1003F2E16 /* VisibilityTrackingModifier.swift */; };
8528897E29BD69B2003F2E16 /* VisibilityTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897B29BD69B2003F2E16 /* VisibilityTracker.swift */; }; 8528897E29BD69B2003F2E16 /* VisibilityTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8528897B29BD69B2003F2E16 /* VisibilityTracker.swift */; };
854207E22BF3E6110027A2E7 /* SwiftUIIntrospect in Frameworks */ = {isa = PBXBuildFile; productRef = 854207E12BF3E6110027A2E7 /* SwiftUIIntrospect */; };
854207E82BF50C310027A2E7 /* WrappingHStack in Frameworks */ = {isa = PBXBuildFile; productRef = 854207E72BF50C310027A2E7 /* WrappingHStack */; };
85431A892905F4F500EE0760 /* glossApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A882905F4F500EE0760 /* glossApp.swift */; }; 85431A892905F4F500EE0760 /* glossApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A882905F4F500EE0760 /* glossApp.swift */; };
85431A8B2905F4F500EE0760 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A8A2905F4F500EE0760 /* ContentView.swift */; }; 85431A8B2905F4F500EE0760 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A8A2905F4F500EE0760 /* ContentView.swift */; };
85431A8D2905F4F600EE0760 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8C2905F4F600EE0760 /* Assets.xcassets */; }; 85431A8D2905F4F600EE0760 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8C2905F4F600EE0760 /* Assets.xcassets */; };
85431A902905F4F600EE0760 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */; }; 85431A902905F4F600EE0760 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */; };
85431A922905F4F600EE0760 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A912905F4F600EE0760 /* Persistence.swift */; }; 85431A922905F4F600EE0760 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A912905F4F600EE0760 /* Persistence.swift */; };
85431A952905F4F600EE0760 /* gloss.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 85431A932905F4F600EE0760 /* gloss.xcdatamodeld */; };
85431A9C2905F5D800EE0760 /* SwiftUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A9B2905F5D800EE0760 /* SwiftUIView.swift */; }; 85431A9C2905F5D800EE0760 /* SwiftUIView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85431A9B2905F5D800EE0760 /* SwiftUIView.swift */; };
8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96629A183EE001EF84F /* AppDatabase.swift */; }; 8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96629A183EE001EF84F /* AppDatabase.swift */; };
8590D96929A18A6D001EF84F /* LineRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96829A18A6C001EF84F /* LineRequest.swift */; }; 8590D96929A18A6D001EF84F /* LineRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96829A18A6C001EF84F /* LineRequest.swift */; };
8590D96C29A92146001EF84F /* JsonImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96B29A92146001EF84F /* JsonImport.swift */; }; 8590D96C29A92146001EF84F /* JsonImport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8590D96B29A92146001EF84F /* JsonImport.swift */; };
85942EE429ACF54A00307621 /* ScrollableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE329ACF54A00307621 /* ScrollableView.swift */; }; 85942EE429ACF54A00307621 /* ScrollableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE329ACF54A00307621 /* ScrollableView.swift */; };
85942EE729AD083600307621 /* Introspect in Frameworks */ = {isa = PBXBuildFile; productRef = 85942EE629AD083600307621 /* Introspect */; };
85942EE929AD51A100307621 /* Ribbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE829AD51A100307621 /* Ribbon.swift */; }; 85942EE929AD51A100307621 /* Ribbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EE829AD51A100307621 /* Ribbon.swift */; };
85942EEB29AD55A400307621 /* RibbonRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEA29AD55A400307621 /* RibbonRequest.swift */; }; 85942EEB29AD55A400307621 /* RibbonRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEA29AD55A400307621 /* RibbonRequest.swift */; };
85942EED29AEA04200307621 /* SelectedRibbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEC29AEA04200307621 /* SelectedRibbon.swift */; }; 85942EED29AEA04200307621 /* SelectedRibbon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EEC29AEA04200307621 /* SelectedRibbon.swift */; };
@ -36,12 +35,11 @@
85942EF929B1150B00307621 /* SegDenorm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EF829B1150B00307621 /* SegDenorm.swift */; }; 85942EF929B1150B00307621 /* SegDenorm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85942EF829B1150B00307621 /* SegDenorm.swift */; };
85942EFE29B11C0B00307621 /* john_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFC29B11C0A00307621 /* john_export.json */; }; 85942EFE29B11C0B00307621 /* john_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFC29B11C0A00307621 /* john_export.json */; };
85942EFF29B11C0B00307621 /* mark_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFD29B11C0B00307621 /* mark_export.json */; }; 85942EFF29B11C0B00307621 /* mark_export.json in Resources */ = {isa = PBXBuildFile; fileRef = 85942EFD29B11C0B00307621 /* mark_export.json */; };
85B267192A780FA60028FDD1 /* ReordableViews in Frameworks */ = {isa = PBXBuildFile; productRef = 85B267182A780FA60028FDD1 /* ReordableViews */; };
85B2671C2A7813950028FDD1 /* SwiftUIReorderableForEach in Frameworks */ = {isa = PBXBuildFile; productRef = 85B2671B2A7813950028FDD1 /* SwiftUIReorderableForEach */; };
85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7B29F34D2D00FF9E78 /* ScrollState.swift */; }; 85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7B29F34D2D00FF9E78 /* ScrollState.swift */; };
85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7D29F34D3700FF9E78 /* ScrollStateRequest.swift */; }; 85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85E00E7D29F34D3700FF9E78 /* ScrollStateRequest.swift */; };
85F01DF82978787800F317B4 /* AveriaSerifLibre-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DF72978787800F317B4 /* AveriaSerifLibre-Regular.ttf */; }; 85F01DF82978787800F317B4 /* AveriaSerifLibre-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DF72978787800F317B4 /* AveriaSerifLibre-Regular.ttf */; };
85F01DFB2978790400F317B4 /* xe-Dogma-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DFA2978790400F317B4 /* xe-Dogma-Bold.ttf */; }; 85F01DFB2978790400F317B4 /* xe-Dogma-Bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 85F01DFA2978790400F317B4 /* xe-Dogma-Bold.ttf */; };
85FE3EAB2B08181600666A3A /* GRDBQuery in Frameworks */ = {isa = PBXBuildFile; productRef = 85FE3EAA2B08181600666A3A /* GRDBQuery */; };
/* End PBXBuildFile section */ /* End PBXBuildFile section */
/* Begin PBXFileReference section */ /* Begin PBXFileReference section */
@ -57,7 +55,6 @@
85431A8C2905F4F600EE0760 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 85431A8C2905F4F600EE0760 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; }; 85431A8F2905F4F600EE0760 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
85431A912905F4F600EE0760 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; }; 85431A912905F4F600EE0760 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
85431A942905F4F600EE0760 /* gloss.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = gloss.xcdatamodel; sourceTree = "<group>"; };
85431A9B2905F5D800EE0760 /* SwiftUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIView.swift; sourceTree = "<group>"; }; 85431A9B2905F5D800EE0760 /* SwiftUIView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUIView.swift; sourceTree = "<group>"; };
8590D96629A183EE001EF84F /* AppDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDatabase.swift; sourceTree = "<group>"; }; 8590D96629A183EE001EF84F /* AppDatabase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDatabase.swift; sourceTree = "<group>"; };
8590D96829A18A6C001EF84F /* LineRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineRequest.swift; sourceTree = "<group>"; }; 8590D96829A18A6C001EF84F /* LineRequest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LineRequest.swift; sourceTree = "<group>"; };
@ -79,7 +76,6 @@
85F01DFC29787B3500F317B4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 85F01DFC29787B3500F317B4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
85F01DFD297A4EEA00F317B4 /* gloss.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = gloss.entitlements; sourceTree = "<group>"; }; 85F01DFD297A4EEA00F317B4 /* gloss.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = gloss.entitlements; sourceTree = "<group>"; };
85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AuthenticationServices.framework; path = System/Library/Frameworks/AuthenticationServices.framework; sourceTree = SDKROOT; }; 85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AuthenticationServices.framework; path = System/Library/Frameworks/AuthenticationServices.framework; sourceTree = SDKROOT; };
A7BAAF4EF300457DE01C135B /* Pods_gloss.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_gloss.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */ /* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */ /* Begin PBXFrameworksBuildPhase section */
@ -87,11 +83,10 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
85B267192A780FA60028FDD1 /* ReordableViews in Frameworks */, 854207E82BF50C310027A2E7 /* WrappingHStack in Frameworks */,
854207E22BF3E6110027A2E7 /* SwiftUIIntrospect in Frameworks */,
8514D5BF299F04710054F185 /* GRDB in Frameworks */, 8514D5BF299F04710054F185 /* GRDB in Frameworks */,
85B2671C2A7813950028FDD1 /* SwiftUIReorderableForEach in Frameworks */, 85FE3EAB2B08181600666A3A /* GRDBQuery in Frameworks */,
85942EE729AD083600307621 /* Introspect in Frameworks */,
8514D5C2299F04A20054F185 /* GRDBQuery in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -153,7 +148,6 @@
85431A9B2905F5D800EE0760 /* SwiftUIView.swift */, 85431A9B2905F5D800EE0760 /* SwiftUIView.swift */,
85431A8C2905F4F600EE0760 /* Assets.xcassets */, 85431A8C2905F4F600EE0760 /* Assets.xcassets */,
85431A912905F4F600EE0760 /* Persistence.swift */, 85431A912905F4F600EE0760 /* Persistence.swift */,
85431A932905F4F600EE0760 /* gloss.xcdatamodeld */,
85431A8E2905F4F600EE0760 /* Preview Content */, 85431A8E2905F4F600EE0760 /* Preview Content */,
852774C029A150B100458CA7 /* Line.swift */, 852774C029A150B100458CA7 /* Line.swift */,
); );
@ -190,7 +184,6 @@
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */, 85F01DFF297A4EEA00F317B4 /* AuthenticationServices.framework */,
A7BAAF4EF300457DE01C135B /* Pods_gloss.framework */,
); );
name = Frameworks; name = Frameworks;
sourceTree = "<group>"; sourceTree = "<group>";
@ -213,10 +206,9 @@
name = gloss; name = gloss;
packageProductDependencies = ( packageProductDependencies = (
8514D5BE299F04710054F185 /* GRDB */, 8514D5BE299F04710054F185 /* GRDB */,
8514D5C1299F04A20054F185 /* GRDBQuery */, 85FE3EAA2B08181600666A3A /* GRDBQuery */,
85942EE629AD083600307621 /* Introspect */, 854207E12BF3E6110027A2E7 /* SwiftUIIntrospect */,
85B267182A780FA60028FDD1 /* ReordableViews */, 854207E72BF50C310027A2E7 /* WrappingHStack */,
85B2671B2A7813950028FDD1 /* SwiftUIReorderableForEach */,
); );
productName = gloss; productName = gloss;
productReference = 85431A852905F4F500EE0760 /* gloss.app */; productReference = 85431A852905F4F500EE0760 /* gloss.app */;
@ -230,7 +222,7 @@
attributes = { attributes = {
BuildIndependentTargetsInParallel = 1; BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1320; LastSwiftUpdateCheck = 1320;
LastUpgradeCheck = 1420; LastUpgradeCheck = 1430;
TargetAttributes = { TargetAttributes = {
85431A842905F4F500EE0760 = { 85431A842905F4F500EE0760 = {
CreatedOnToolsVersion = 13.2.1; CreatedOnToolsVersion = 13.2.1;
@ -249,9 +241,8 @@
packageReferences = ( packageReferences = (
8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */, 8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */,
8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */, 8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */,
85942EE529AD083600307621 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */, 854207E02BF3E6110027A2E7 /* XCRemoteSwiftPackageReference "swiftui-introspect" */,
85B267172A780FA60028FDD1 /* XCRemoteSwiftPackageReference "ReordableViews" */, 854207E62BF50C310027A2E7 /* XCRemoteSwiftPackageReference "WrappingHStack" */,
85B2671A2A7813950028FDD1 /* XCRemoteSwiftPackageReference "swiftui-reorderable-foreach" */,
); );
productRefGroup = 85431A862905F4F500EE0760 /* Products */; productRefGroup = 85431A862905F4F500EE0760 /* Products */;
projectDirPath = ""; projectDirPath = "";
@ -290,7 +281,6 @@
85942EF529B108C600307621 /* Seg.swift in Sources */, 85942EF529B108C600307621 /* Seg.swift in Sources */,
85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */, 85E00E7C29F34D2D00FF9E78 /* ScrollState.swift in Sources */,
8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */, 8528897529B2B86B003F2E16 /* CrownOfThorns.swift in Sources */,
85431A952905F4F600EE0760 /* gloss.xcdatamodeld in Sources */,
85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */, 85E00E7E29F34D3700FF9E78 /* ScrollStateRequest.swift in Sources */,
85942EE929AD51A100307621 /* Ribbon.swift in Sources */, 85942EE929AD51A100307621 /* Ribbon.swift in Sources */,
8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */, 8590D96729A183EE001EF84F /* AppDatabase.swift in Sources */,
@ -424,7 +414,6 @@
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES; MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule; SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_OPTIMIZATION_LEVEL = "-O";
@ -439,10 +428,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements; CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\"";
DEVELOPMENT_TEAM = C8XWX9329P; DEVELOPMENT_TEAM = V8B2B34W7R;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = gloss/Info.plist; INFOPLIST_FILE = gloss/Info.plist;
@ -451,14 +441,15 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.emily.gloss; PRODUCT_BUNDLE_IDENTIFIER = com.aingel.gloss;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
@ -475,10 +466,11 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements; CODE_SIGN_ENTITLEMENTS = gloss/gloss.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"gloss/Preview Content\"";
DEVELOPMENT_TEAM = C8XWX9329P; DEVELOPMENT_TEAM = V8B2B34W7R;
ENABLE_PREVIEWS = YES; ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES; GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = gloss/Info.plist; INFOPLIST_FILE = gloss/Info.plist;
@ -487,14 +479,15 @@
INFOPLIST_KEY_UILaunchScreen_Generation = YES; INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
IPHONEOS_DEPLOYMENT_TARGET = 15.0; IPHONEOS_DEPLOYMENT_TARGET = 16.0;
LD_RUNPATH_SEARCH_PATHS = ( LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.0; MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.emily.gloss; PRODUCT_BUNDLE_IDENTIFIER = com.aingel.gloss;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
@ -544,30 +537,22 @@
minimumVersion = 0.5.1; minimumVersion = 0.5.1;
}; };
}; };
85942EE529AD083600307621 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = { 854207E02BF3E6110027A2E7 /* XCRemoteSwiftPackageReference "swiftui-introspect" */ = {
isa = XCRemoteSwiftPackageReference; isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/siteline/SwiftUI-Introspect.git"; repositoryURL = "https://github.com/siteline/swiftui-introspect";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 0.2.3;
};
};
85B267172A780FA60028FDD1 /* XCRemoteSwiftPackageReference "ReordableViews" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/gadirom/ReordableViews";
requirement = {
branch = main;
kind = branch;
};
};
85B2671A2A7813950028FDD1 /* XCRemoteSwiftPackageReference "swiftui-reorderable-foreach" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/globulus/swiftui-reorderable-foreach";
requirement = { requirement = {
kind = upToNextMajorVersion; kind = upToNextMajorVersion;
minimumVersion = 1.0.0; minimumVersion = 1.0.0;
}; };
}; };
854207E62BF50C310027A2E7 /* XCRemoteSwiftPackageReference "WrappingHStack" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/ksemianov/WrappingHStack";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 0.2.0;
};
};
/* End XCRemoteSwiftPackageReference section */ /* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */ /* Begin XCSwiftPackageProductDependency section */
@ -576,40 +561,22 @@
package = 8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */; package = 8514D5BD299F04710054F185 /* XCRemoteSwiftPackageReference "GRDB.swift" */;
productName = GRDB; productName = GRDB;
}; };
8514D5C1299F04A20054F185 /* GRDBQuery */ = { 854207E12BF3E6110027A2E7 /* SwiftUIIntrospect */ = {
isa = XCSwiftPackageProductDependency;
package = 854207E02BF3E6110027A2E7 /* XCRemoteSwiftPackageReference "swiftui-introspect" */;
productName = SwiftUIIntrospect;
};
854207E72BF50C310027A2E7 /* WrappingHStack */ = {
isa = XCSwiftPackageProductDependency;
package = 854207E62BF50C310027A2E7 /* XCRemoteSwiftPackageReference "WrappingHStack" */;
productName = WrappingHStack;
};
85FE3EAA2B08181600666A3A /* GRDBQuery */ = {
isa = XCSwiftPackageProductDependency; isa = XCSwiftPackageProductDependency;
package = 8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */; package = 8514D5C0299F04A20054F185 /* XCRemoteSwiftPackageReference "GRDBQuery" */;
productName = GRDBQuery; productName = GRDBQuery;
}; };
85942EE629AD083600307621 /* Introspect */ = {
isa = XCSwiftPackageProductDependency;
package = 85942EE529AD083600307621 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */;
productName = Introspect;
};
85B267182A780FA60028FDD1 /* ReordableViews */ = {
isa = XCSwiftPackageProductDependency;
package = 85B267172A780FA60028FDD1 /* XCRemoteSwiftPackageReference "ReordableViews" */;
productName = ReordableViews;
};
85B2671B2A7813950028FDD1 /* SwiftUIReorderableForEach */ = {
isa = XCSwiftPackageProductDependency;
package = 85B2671A2A7813950028FDD1 /* XCRemoteSwiftPackageReference "swiftui-reorderable-foreach" */;
productName = SwiftUIReorderableForEach;
};
/* End XCSwiftPackageProductDependency section */ /* End XCSwiftPackageProductDependency section */
/* Begin XCVersionGroup section */
85431A932905F4F600EE0760 /* gloss.xcdatamodeld */ = {
isa = XCVersionGroup;
children = (
85431A942905F4F600EE0760 /* gloss.xcdatamodel */,
);
currentVersion = 85431A942905F4F600EE0760 /* gloss.xcdatamodel */;
path = gloss.xcdatamodeld;
sourceTree = "<group>";
versionGroupType = wrapper.xcdatamodel;
};
/* End XCVersionGroup section */
}; };
rootObject = 85431A7D2905F4F500EE0760 /* Project object */; rootObject = 85431A7D2905F4F500EE0760 /* Project object */;
} }

View File

@ -1,30 +1,12 @@
{ {
"pins" : [ "pins" : [
{
"identity" : "cgmath",
"kind" : "remoteSourceControl",
"location" : "https://github.com/gadirom/CGMath",
"state" : {
"revision" : "ed3125a2d6d9a98f4a7d58a4f79fc9c159498650",
"version" : "1.0.4"
}
},
{
"identity" : "containergeometry",
"kind" : "remoteSourceControl",
"location" : "https://github.com/gadirom/ContainerGeometry",
"state" : {
"revision" : "4e6a5916da407e48ef4458bb970508527b9e05cc",
"version" : "1.0.2"
}
},
{ {
"identity" : "grdb.swift", "identity" : "grdb.swift",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/groue/GRDB.swift.git", "location" : "https://github.com/groue/GRDB.swift.git",
"state" : { "state" : {
"branch" : "master", "branch" : "master",
"revision" : "ba68e3b02d9ed953a0c9ff43183f856f20c9b7ce" "revision" : "f1f8e8438ad815086b48660ddf87c788f9abe966"
} }
}, },
{ {
@ -32,17 +14,8 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/groue/GRDBQuery", "location" : "https://github.com/groue/GRDBQuery",
"state" : { "state" : {
"revision" : "df514f2bd74548f94e082f3233022190e594fce4", "revision" : "be64298b4f9d70510226fa7e698aef84f41cec02",
"version" : "0.5.1" "version" : "0.7.0"
}
},
{
"identity" : "reordableviews",
"kind" : "remoteSourceControl",
"location" : "https://github.com/gadirom/ReordableViews",
"state" : {
"branch" : "main",
"revision" : "636703c4f4aba60bfac7c09115516db82ea354d3"
} }
}, },
{ {
@ -50,17 +23,17 @@
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/siteline/SwiftUI-Introspect.git", "location" : "https://github.com/siteline/SwiftUI-Introspect.git",
"state" : { "state" : {
"revision" : "c18951c747ab62af7c15e17a81bd37d4fd5a9979", "revision" : "7dc5b287f8040e4ad5038739850b758e78f77808",
"version" : "0.2.3" "version" : "1.1.4"
} }
}, },
{ {
"identity" : "swiftui-reorderable-foreach", "identity" : "wrappinghstack",
"kind" : "remoteSourceControl", "kind" : "remoteSourceControl",
"location" : "https://github.com/globulus/swiftui-reorderable-foreach", "location" : "https://github.com/ksemianov/WrappingHStack",
"state" : { "state" : {
"revision" : "47f6ca1ad906ef2ae1f872ed34a10cc615ad99ca", "revision" : "3300f68b6bf5f8a75ee7ca8a40f136a558053d10",
"version" : "1.0.0" "version" : "0.2.0"
} }
} }
], ],

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "1420" LastUpgradeVersion = "1430"
version = "1.3"> version = "1.3">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"

View File

@ -1,72 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Bucket
uuid = "2FEB6A3D-6E5D-4217-8815-CC53223502A6"
type = "1"
version = "2.0">
<Breakpoints>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "19620363-AF5F-4353-862D-4E40746274F5"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "gloss/ContentView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "572"
endingLineNumber = "572"
landmarkName = "body"
landmarkType = "24">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "A3202903-6BE5-4879-8970-4CE7B825E6DD"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "gloss/ContentView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "574"
endingLineNumber = "574"
landmarkName = "body"
landmarkType = "24">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "DCBFFF14-138E-43D2-BA78-A5265A13CD4F"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "gloss/ContentView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "465"
endingLineNumber = "465"
landmarkName = "body"
landmarkType = "24">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "1FDEB1B0-A696-4F5A-86AB-30728070E82F"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "gloss/ContentView.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "433"
endingLineNumber = "433"
landmarkName = "body"
landmarkType = "24">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>

View File

@ -1,106 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>Associations (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>12</integer>
</dict>
<key>Associations (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>13</integer>
</dict>
<key>Associations (Playground).xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>11</integer>
</dict>
<key>MyPlayground (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>9</integer>
</dict>
<key>MyPlayground (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>10</integer>
</dict>
<key>MyPlayground (Playground).xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>8</integer>
</dict>
<key>Tour (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>6</integer>
</dict>
<key>Tour (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>7</integer>
</dict>
<key>Tour (Playground).xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>5</integer>
</dict>
<key>TransactionObserver (Playground) 1.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>3</integer>
</dict>
<key>TransactionObserver (Playground) 2.xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>4</integer>
</dict>
<key>TransactionObserver (Playground).xcscheme</key>
<dict>
<key>isShown</key>
<false/>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>gloss.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>2</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>85431A842905F4F500EE0760</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View File

@ -5,13 +5,12 @@
// Created by Saint on 10/23/22. // Created by Saint on 10/23/22.
// //
import SwiftUI
import GRDB import GRDB
import GRDBQuery import GRDBQuery
import Introspect import SwiftUIIntrospect
import os import os
import SwiftUIReorderableForEach import SwiftUI
import WrappingHStack
let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "network") let logger = Logger(subsystem: Bundle.main.bundleIdentifier!, category: "network")
var currentId: String? var currentId: String?
@ -24,8 +23,8 @@ var disableDrop = false
// var curBook = "John" // var curBook = "John"
extension UserDefaults { public extension UserDefaults {
public func optionalInt(forKey defaultName: String) -> Int? { func optionalInt(forKey defaultName: String) -> Int? {
let defaults = self let defaults = self
if let value = defaults.value(forKey: defaultName) { if let value = defaults.value(forKey: defaultName) {
return value as? Int return value as? Int
@ -33,7 +32,7 @@ extension UserDefaults {
return nil return nil
} }
public func optionalBool(forKey defaultName: String) -> Bool? { func optionalBool(forKey defaultName: String) -> Bool? {
let defaults = self let defaults = self
if let value = defaults.value(forKey: defaultName) { if let value = defaults.value(forKey: defaultName) {
return value as? Bool return value as? Bool
@ -49,10 +48,8 @@ func goToRibbon(selectedRibbon: Ribbon,
refresh: Binding<Bool>, refresh: Binding<Bool>,
showOverlay: Binding<Bool>, showOverlay: Binding<Bool>,
appDatabase: AppDatabase, appDatabase: AppDatabase,
loading: Bool loading: Bool)
)
{ {
Task { Task {
// print("SELECTED RIBBON", selectedRibbon) // print("SELECTED RIBBON", selectedRibbon)
var scrollOffsetToSave = currentOffset var scrollOffsetToSave = currentOffset
@ -60,14 +57,15 @@ func goToRibbon(selectedRibbon: Ribbon,
var updatedRibbon = selectedRibbon var updatedRibbon = selectedRibbon
if (selectedRibbon.id != destRibbon.id! || loading) { if selectedRibbon.id != destRibbon.id! || loading {
print("switching ribbons") print("switching ribbons")
// withAnimation(.spring(response: 0.05)) { // withAnimation(.spring(response: 0.05)) {
// showOverlay.wrappedValue = true
showOverlay.wrappedValue = true showOverlay.wrappedValue = true
// } // }
if (loading) { if loading {
currentId = destRibbon.scrollId currentId = destRibbon.scrollId
// currentOffset = CGFloat(destRibbon.scrollOffset) // currentOffset = CGFloat(destRibbon.scrollOffset)
} }
@ -79,7 +77,6 @@ func goToRibbon(selectedRibbon: Ribbon,
// print("end setting scroll offset") // print("end setting scroll offset")
refresh.wrappedValue.toggle() refresh.wrappedValue.toggle()
var updateSelectRibbon = SelectedRibbon(id: Int64(1), ribbonId: destRibbon.id!) var updateSelectRibbon = SelectedRibbon(id: Int64(1), ribbonId: destRibbon.id!)
// print("Saving selected ribbon") // print("Saving selected ribbon")
// print(updateSelectRibbon) // print(updateSelectRibbon)
@ -90,7 +87,7 @@ func goToRibbon(selectedRibbon: Ribbon,
} }
} }
if (!loading) { if !loading {
print("not loading") print("not loading")
updatedRibbon.scrollOffset = Int(floor(scrollOffsetToSave!)) updatedRibbon.scrollOffset = Int(floor(scrollOffsetToSave!))
updatedRibbon.scrollId = scrollIdToSave! updatedRibbon.scrollId = scrollIdToSave!
@ -135,17 +132,14 @@ struct RibbonCrown : View {
@Query(SelectedRibbonRequest()) private var sr: [Ribbon] @Query(SelectedRibbonRequest()) private var sr: [Ribbon]
@State var saveOffset = CGFloat() @State var saveOffset = CGFloat()
var body: some View { var body: some View {
ZStack { ZStack {
MyIcon().frame( MyIcon().frame(
width: CGFloat(100 * 1.66 * scale), width: CGFloat(100 * 1.66 * scale),
height: CGFloat(100 * scale), height: CGFloat(100 * scale),
alignment: .center alignment: .center
).foregroundColor(Color(UIColor(red: 0.30, green: 0.30, blue: 0.30, alpha: 0.4))) ).foregroundColor(Color(UIColor(red: 0.30, green: 0.30, blue: 0.30, alpha: 0.4)))
.if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) } .if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) }
// .offset(x: 10) // .offset(x: 10)
@ -160,7 +154,6 @@ struct RibbonCrown : View {
maxHeight: height, maxHeight: height,
alignment: .center) alignment: .center)
.if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) } .if(draggedRibbon != nil && draggedRibbon!.id == ribbon.id && isDragging) { $0.overlay(Color(red: 0.1, green: 0.1, blue: 0.1)) }
// .if(!isDragging || draggedRibbon == nil || draggedRibbon!.id != ribbon.id) { $0.background(Color(red: 0.1, green: 0.1, blue: 0.1)) } // .if(!isDragging || draggedRibbon == nil || draggedRibbon!.id != ribbon.id) { $0.background(Color(red: 0.1, green: 0.1, blue: 0.1)) }
@ -174,10 +167,8 @@ struct RibbonCrown : View {
// .minimumScaleFactor(0.5) // .minimumScaleFactor(0.5)
// .padding([.top, .bottom], 10) // .padding([.top, .bottom], 10)
.font(Font.custom("AveriaSerifLibre-Regular", size: CGFloat(10))) .font(Font.custom("AveriaSerifLibre-Regular", size: CGFloat(10)))
} }
.frame(width: CGFloat(100 * 1.66 * scale + 10), height: CGFloat(100 * scale + 5)) .frame(width: CGFloat(100 * 1.66 * scale + 10), height: CGFloat(100 * scale + 5))
} }
} }
@ -190,7 +181,7 @@ func makeVerseView(seg: SegDenorm) -> some View {
var retView = Text("") var retView = Text("")
var segSplit = seg.body.components(separatedBy: ";;") var segSplit = seg.body.components(separatedBy: ";;")
let decoder = JSONDecoder() let decoder = JSONDecoder()
segSplit.enumerated().forEach({ (index, item) in for (index, item) in segSplit.enumerated() {
let verse = try! decoder.decode(Verse.self, from: item.data(using: .utf8)!) let verse = try! decoder.decode(Verse.self, from: item.data(using: .utf8)!)
retView = retView + Text(String(verse.verse)) retView = retView + Text(String(verse.verse))
@ -201,7 +192,7 @@ func makeVerseView(seg: SegDenorm) -> some View {
retView = retView + Text(verse.body) retView = retView + Text(verse.body)
.foregroundColor(Color.white) .foregroundColor(Color.white)
.font(Font.custom("AveriaSerifLibre-Regular", size: 15)) .font(Font.custom("AveriaSerifLibre-Regular", size: 15))
}) }
return retView return retView
} }
@ -211,13 +202,19 @@ private struct SegRow: View {
var body: some View { var body: some View {
var retView = Text("") var retView = Text("")
// .onTapGesture {
// // selectedLine = seg.id
// // Print(selectedLine)
// Print("meow")
// // Print(verse.body)
// }
var segSplit = seg.body.components(separatedBy: ";;") var segSplit = seg.body.components(separatedBy: ";;")
let decoder = JSONDecoder() let decoder = JSONDecoder()
// Text(segSplit[0].body) // Text(segSplit[0].body)
// .id(seg.id) // .id(seg.id)
// VStack { // VStack {
// ForEach(segSplit.indices) { i in // ForEach(segSplit.indices) { i in
segSplit.enumerated().forEach({ (index, item) in segSplit.enumerated().forEach { _, item in
let verse = try! decoder.decode(Verse.self, from: item.data(using: .utf8)!) let verse = try! decoder.decode(Verse.self, from: item.data(using: .utf8)!)
var attributedString: AttributedString { var attributedString: AttributedString {
@ -236,22 +233,19 @@ private struct SegRow: View {
.baselineOffset(6.0) .baselineOffset(6.0)
.foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00))) .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
retView = retView +
retView = retView + Text(attributedString) Text(attributedString)
// .frame(maxWidth: .infinity, alignment: .leading)
// .contentShape(Rectangle())
.foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00))) .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
.font(Font.custom("AveriaSerifLibre-Regular", size: 20)) .font(Font.custom("AveriaSerifLibre-Regular", size: 20))
// .frame(maxWidth: .infinity, alignment: .leading)
// .contentShape(Rectangle())
// .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2)) // .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2))
// .listRowInsets(EdgeInsets()) // .listRowInsets(EdgeInsets())
// .padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20)) // .padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
// .listRowSeparator(.hidden) // .listRowSeparator(.hidden)
// .id(String(seg.id) + "body" + String(i)) // .id(String(seg.id) + "body" + String(i))
// .id(seg.id) // .id(seg.id)
//.onTapGesture {
// selectedLine = seg.id
//Print(selectedLine)
//}
// .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2)) // .listRowBackground(Color(red: 0.2, green: 0.8, blue: 0.2))
// .listRowInsets(EdgeInsets()) // .listRowInsets(EdgeInsets())
@ -263,14 +257,36 @@ private struct SegRow: View {
// selectedLine = seg.id // selectedLine = seg.id
// Print(selectedLine) // Print(selectedLine)
// } // }
}) }
// } // }
return retView
let myText = "There was a man sent from God, whose name was John. This man came for a witness, to give testimony of the light, that all men might believe through him. He was not the light, but was to give testimony of the light. That was the true light, which enlighteneth every man that cometh into this world. He was in the world, and the world was made by him, and the world knew him not."
let arrayOfText = myText.components(separatedBy: " ")
var wordSelected = ""
var newView = WrappingHStack(alignment: .leading, horizontalSpacing: 3.5) {
ForEach(0..<arrayOfText.count, id: \.self) { index in
Text(arrayOfText[index])
.foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
.font(Font.custom("AveriaSerifLibre-Regular", size: 20))
.foregroundColor(Color.white)
// .background(Color.black)
.padding(.horizontal, 0)
.onTapGesture {
Print(arrayOfText[index])
Print(index)
} }
} }
}
// return retView
return newView } }
struct ContentView: View { struct ContentView: View {
@State var viewState = CGSize.zero @State var viewState = CGSize.zero
@State var pulledOut = CGSize.zero @State var pulledOut = CGSize.zero
@State var taskTitle: String = "FIRST DOGGG" @State var taskTitle: String = "FIRST DOGGG"
@ -290,7 +306,6 @@ struct ContentView: View {
@State var vertSep = CGFloat(20) @State var vertSep = CGFloat(20)
@Environment(\.appDatabase) private var appDatabase @Environment(\.appDatabase) private var appDatabase
@Query(SegDenormRequest(book: "bible.mark")) private var segs: [SegDenorm] @Query(SegDenormRequest(book: "bible.mark")) private var segs: [SegDenorm]
@ -316,13 +331,11 @@ struct ContentView: View {
@State var reorder = true @State var reorder = true
@Query(RibbonRequest()) private var ribbons: [Ribbon] @Query(RibbonRequest()) private var ribbons: [Ribbon]
@Query<SelectedRibbonRequest> var selectedRibbon: [Ribbon] @Query<SelectedRibbonRequest> var selectedRibbon: [Ribbon]
// @Query(RibbonRequest(id: Int64(UserDefaults.standard.optionalInt(forKey: "lastRibbonId") ?? 1))) private var selectedRibbon: [Ribbon] // @Query(RibbonRequest(id: Int64(UserDefaults.standard.optionalInt(forKey: "lastRibbonId") ?? 1))) private var selectedRibbon: [Ribbon]
init() { init() {
UITableView.appearance().backgroundColor = UIColor(Color(red: 0.2, green: 0.2, blue: 0.2)) UITableView.appearance().backgroundColor = UIColor(Color(red: 0.2, green: 0.2, blue: 0.2))
_selectedRibbon = Query(SelectedRibbonRequest()) _selectedRibbon = Query(SelectedRibbonRequest())
@ -358,8 +371,7 @@ struct ContentView: View {
showOverlay: $showOverlay, showOverlay: $showOverlay,
refresh: $refresh, refresh: $refresh,
draggedRibbon: draggedRibbon, draggedRibbon: draggedRibbon,
isDragging: isDragging isDragging: isDragging)
)
.onDrag { .onDrag {
self.draggedRibbon = ribbon self.draggedRibbon = ribbon
return NSItemProvider() return NSItemProvider()
@ -368,22 +380,18 @@ struct ContentView: View {
delegate: DropViewDelegate(destinationItem: ribbon, delegate: DropViewDelegate(destinationItem: ribbon,
draggedItem: $draggedRibbon, draggedItem: $draggedRibbon,
isDragging: $isDragging, isDragging: $isDragging,
appDatabase: appDatabase) appDatabase: appDatabase))
)
.offset(x: 6, y: 6) .offset(x: 6, y: 6)
} }
// .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00))) // .foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
} }
.frame(width: geometry.size.width, height: geometry.size.height - 100, alignment: .topLeading) .frame(width: geometry.size.width, height: geometry.size.height - 100, alignment: .topLeading)
.background(Color(red: 0.1, green: 0.1, blue: 0.1)) .background(Color(red: 0.1, green: 0.1, blue: 0.1))
.zIndex(0) .zIndex(0)
.animation(.default, value: ribbons) .animation(.default, value: ribbons)
.onDrop(of: [.item], .onDrop(of: [.item],
delegate: DropViewDelegate2(isDragging: $isDragging) delegate: DropViewDelegate2(isDragging: $isDragging))
)
// Spacer() // Spacer()
@ -406,7 +414,6 @@ struct ContentView: View {
// .animation(nil) // .animation(nil)
VStack { VStack {
ScrollViewReader { proxy in ScrollViewReader { proxy in
VisibilityTrackingScrollView(action: handleVisibilityChanged) { VisibilityTrackingScrollView(action: handleVisibilityChanged) {
// ScrollView { // ScrollView {
@ -414,8 +421,7 @@ struct ContentView: View {
LazyVStack { LazyVStack {
ForEach(segs) { seg in ForEach(segs) { seg in
SegRow(seg: seg, SegRow(seg: seg,
ribbonId: selectedRibbon[0].id! ribbonId: selectedRibbon[0].id!)
)
.id("\(seg.id)") .id("\(seg.id)")
.offset(x: -dragOffset) .offset(x: -dragOffset)
// .offset(x: pulledOut.width) // .offset(x: pulledOut.width)
@ -437,7 +443,7 @@ struct ContentView: View {
.background(Color(red: 0.18, green: 0.18, blue: 0.18)) .background(Color(red: 0.18, green: 0.18, blue: 0.18))
} }
.onAppear() { .onAppear {
Print("APPEAR") Print("APPEAR")
// Print(selectedRibbon[0]) // Print(selectedRibbon[0])
// scrollId = "3" // scrollId = "3"
@ -452,9 +458,8 @@ struct ContentView: View {
showOverlay: $showOverlay, showOverlay: $showOverlay,
appDatabase: appDatabase, appDatabase: appDatabase,
loading: true) loading: true)
} }
.onChange(of: refresh) { target in .onChange(of: refresh) { _ in
// if let target = target { // if let target = target {
// gTracker!.visibleViews["123123"] = CGFloat(100) // gTracker!.visibleViews["123123"] = CGFloat(100)
// Print("ON CHANGE", gTracker!.visibleViews) // Print("ON CHANGE", gTracker!.visibleViews)
@ -469,11 +474,10 @@ struct ContentView: View {
// if (currentId != scrollId!) { // if (currentId != scrollId!) {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
Print(" scroll id target", scrollId) Print(" scroll id target", scrollId)
Print(" current id ", currentId) Print(" current id ", currentId)
Print(gTracker!.sortedViewIDs) Print(gTracker!.sortedViewIDs)
if (currentId! != scrollId!) { if currentId! != scrollId! {
Print("NO MATCH") Print("NO MATCH")
} }
@ -482,7 +486,7 @@ struct ContentView: View {
var curOffset = gTracker!.visibleViews[scrollId!] var curOffset = gTracker!.visibleViews[scrollId!]
Print(" stats", gTracker!.visibleViews) Print(" stats", gTracker!.visibleViews)
// // setScrollOffset = CGFloat(Int(currentOffset!) * -1 + Int(scrollOffset!)) // // setScrollOffset = CGFloat(Int(currentOffset!) * -1 + Int(scrollOffset!))
if (curOffset != nil) { if curOffset != nil {
setScrollOffset = CGFloat(Int(scrollOffset!) - Int(curOffset!)) setScrollOffset = CGFloat(Int(scrollOffset!) - Int(curOffset!))
Print("applying scroll offset \(setScrollOffset)") Print("applying scroll offset \(setScrollOffset)")
// // setScrollOffset = CGFloat(Int(scrollOffset!)) // // setScrollOffset = CGFloat(Int(scrollOffset!))
@ -494,7 +498,6 @@ struct ContentView: View {
setScrollOffset = CGFloat(adjust) setScrollOffset = CGFloat(adjust)
refresh.toggle() refresh.toggle()
} }
// // currentId = scrollId! // // currentId = scrollId!
@ -507,16 +510,16 @@ struct ContentView: View {
} }
} }
} }
.introspectScrollView { scrollView in .introspect(.scrollView, on: .iOS(.v13, .v14, .v15, .v16, .v17)) { scrollView in Print("introspect")
Print("introspect")
// scrollView.delegate = scrollDelegate
// Print("Scroll delegate offset", scrollDelegate.scrollOffset) // Print("Scroll delegate offset", scrollDelegate.scrollOffset)
if (setScrollOffset != nil) { if setScrollOffset != nil {
// Print("Setting scroll offset in introspect", setScrollOffset) // Print("Setting scroll offset in introspect", setScrollOffset)
DispatchQueue.main.async { DispatchQueue.main.async {
scrollView.contentOffset.y = scrollView.contentOffset.y + setScrollOffset! scrollView.contentOffset.y = scrollView.contentOffset.y + setScrollOffset!
setScrollOffset = nil setScrollOffset = nil
// self.showOverlay = false
withAnimation { withAnimation {
showOverlay = false showOverlay = false
} }
@ -543,7 +546,7 @@ struct ContentView: View {
DragGesture() DragGesture()
.onChanged { gesture in .onChanged { gesture in
if (endedDrag) { if endedDrag {
endedDrag = false endedDrag = false
scrollOffset = readOffset.y - 20 scrollOffset = readOffset.y - 20
// _ = Print("meow") // _ = Print("meow")
@ -551,9 +554,9 @@ struct ContentView: View {
// logger.error("hello222") // logger.error("hello222")
// NSLog("hellooo") // NSLog("hellooo")
Print(viewState.width) Print(viewState.width)
if (abs(gesture.translation.width) > 20) { if abs(gesture.translation.width) > 20 {
viewState.width = gesture.translation.width viewState.width = gesture.translation.width
if (gesture.translation.width < -50 && pulledOut.width == CGFloat(0)) { if gesture.translation.width < -50, pulledOut.width == CGFloat(0) {
dragOffset = gesture.translation.width + 50 dragOffset = gesture.translation.width + 50
} }
} }
@ -563,10 +566,9 @@ struct ContentView: View {
.onEnded { _ in .onEnded { _ in
endedDrag = true endedDrag = true
var pulledOutWidth = CGFloat(0) var pulledOutWidth = CGFloat(0)
if (viewState.width < 0) { if viewState.width < 0 {
pulledOutWidth = CGFloat(0) pulledOutWidth = CGFloat(0)
} } else if abs(viewState.width + pulledOut.width) > 30 {
else if abs(viewState.width + pulledOut.width ) > 30 {
pulledOutWidth = CGFloat(200) pulledOutWidth = CGFloat(200)
} }
@ -578,7 +580,7 @@ struct ContentView: View {
} }
) )
Text("DRAG").foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00))) Text("separator").foregroundColor(Color(UIColor(red: 0.76, green: 0.76, blue: 0.76, alpha: 1.00)))
.gesture( .gesture(
DragGesture() DragGesture()
.onChanged { gesture in .onChanged { gesture in
@ -620,17 +622,15 @@ struct ContentView: View {
// } // }
) )
ScrollViewReader { proxy in ScrollViewReader { _ in
VisibilityTrackingScrollView(action: handleVisibilityChanged2) { VisibilityTrackingScrollView(action: handleVisibilityChanged2) {
// ScrollView { // ScrollView {
LazyVStack { LazyVStack {
ForEach(segs) { seg in ForEach(segs) { seg in
SegRow(seg: seg, SegRow(seg: seg,
ribbonId: selectedRibbon[0].id! ribbonId: selectedRibbon[0].id!)
)
.id("\(seg.id)") .id("\(seg.id)")
.padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20)) .padding(EdgeInsets(top: 10, leading: 20, bottom: 40, trailing: 20))
.trackVisibility(id: "\(seg.id)") .trackVisibility(id: "\(seg.id)")
@ -648,7 +648,7 @@ struct ContentView: View {
.background(Color(red: 0.18, green: 0.18, blue: 0.18)) .background(Color(red: 0.18, green: 0.18, blue: 0.18))
} }
.onAppear() { .onAppear {
Print("APPEAR") Print("APPEAR")
// Print(selectedRibbon[0]) // Print(selectedRibbon[0])
// scrollId = "3" // scrollId = "3"
@ -663,7 +663,6 @@ struct ContentView: View {
// showOverlay: $showOverlay, // showOverlay: $showOverlay,
// appDatabase: appDatabase, // appDatabase: appDatabase,
// loading: true) // loading: true)
} }
// .onChange(of: refresh) { target in // .onChange(of: refresh) { target in
// //if let target = target { // //if let target = target {
@ -693,7 +692,6 @@ struct ContentView: View {
// Print("NO MATCH") // Print("NO MATCH")
// } // }
// // Print(" scroll offset target", scrollOffset) // // Print(" scroll offset target", scrollOffset)
// Print(" current offset ", gTracker!.visibleViews[scrollId!]) // Print(" current offset ", gTracker!.visibleViews[scrollId!])
// var curOffset = gTracker!.visibleViews[scrollId!] // var curOffset = gTracker!.visibleViews[scrollId!]
@ -760,7 +758,7 @@ struct ContentView: View {
DragGesture() DragGesture()
.onChanged { gesture in .onChanged { gesture in
if (endedDrag) { if endedDrag {
endedDrag = false endedDrag = false
scrollOffset = readOffset.y - 20 scrollOffset = readOffset.y - 20
// _ = Print("meow") // _ = Print("meow")
@ -768,7 +766,7 @@ struct ContentView: View {
// logger.error("hello222") // logger.error("hello222")
// NSLog("hellooo") // NSLog("hellooo")
Print(viewState.width) Print(viewState.width)
if (abs(gesture.translation.width) > 20) { if abs(gesture.translation.width) > 20 {
viewState.width = gesture.translation.width viewState.width = gesture.translation.width
} }
// offset.y = gesture.translation.width // offset.y = gesture.translation.width
@ -777,10 +775,9 @@ struct ContentView: View {
.onEnded { _ in .onEnded { _ in
endedDrag = true endedDrag = true
var pulledOutWidth = CGFloat(0) var pulledOutWidth = CGFloat(0)
if (viewState.width < 0) { if viewState.width < 0 {
pulledOutWidth = CGFloat(0) pulledOutWidth = CGFloat(0)
} } else if abs(viewState.width + pulledOut.width) > 30 {
else if abs(viewState.width + pulledOut.width ) > 30 {
pulledOutWidth = CGFloat(200) pulledOutWidth = CGFloat(200)
} }
@ -790,13 +787,11 @@ struct ContentView: View {
} }
} }
) )
} }
if (showOverlay) { if showOverlay {
Rectangle() Rectangle()
.frame(width: geometry.size.width - 50, height: geometry.size.height + 200) .frame(width: geometry.size.width - 50, height: geometry.size.height + 200)
.background(.ultraThinMaterial) .background(.ultraThinMaterial)
// .blur(radius: 0.8) // .blur(radius: 0.8)
@ -807,21 +802,15 @@ struct ContentView: View {
// .frame(width: geometry.size.width - 50) // .frame(width: geometry.size.width - 50)
.offset(x: pulledOut.width) .offset(x: pulledOut.width)
.offset(x: viewState.width, y: viewState.height) .offset(x: viewState.width, y: viewState.height)
.zIndex(2) .zIndex(2)
} }
} }
} }
} }
func handleVisibilityChanged2(_: String, change _: VisibilityChange, tracker _: VisibilityTracker<String>) {}
func handleVisibilityChanged2(_ id: String, change: VisibilityChange, tracker: VisibilityTracker<String>) { func handleVisibilityChanged(_: String, change _: VisibilityChange, tracker: VisibilityTracker<String>) {
}
func handleVisibilityChanged(_ id: String, change: VisibilityChange, tracker: VisibilityTracker<String>) {
// var printRate: Int64 = 10 // var printRate: Int64 = 10
gTracker = tracker gTracker = tracker
@ -843,8 +832,7 @@ struct ContentView: View {
// } // }
let visibleViews2 = Array(tracker.visibleViews.keys) let visibleViews2 = Array(tracker.visibleViews.keys)
if (visibleViews2.count == 0) { if visibleViews2.count == 0 {
return return
} }
@ -878,52 +866,48 @@ private let itemFormatter: DateFormatter = {
struct DropViewDelegate2: DropDelegate { struct DropViewDelegate2: DropDelegate {
@Binding var isDragging: Bool @Binding var isDragging: Bool
func dropUpdated(info: DropInfo) -> DropProposal? { func dropUpdated(info _: DropInfo) -> DropProposal? {
return DropProposal(operation: .move) return DropProposal(operation: .move)
} }
func performDrop(info: DropInfo) -> Bool { func performDrop(info _: DropInfo) -> Bool {
isDragging = false isDragging = false
return true return true
} }
func dropEntered(info: DropInfo) { func dropEntered(info _: DropInfo) {
isDragging = true isDragging = true
print("SECOND DROPPPOOO") print("SECOND DROPPPOOO")
} }
} }
struct DropViewDelegate: DropDelegate { struct DropViewDelegate: DropDelegate {
let destinationItem: Ribbon let destinationItem: Ribbon
// @Binding var colors: [Color] // @Binding var colors: [Color]
@Binding var draggedItem: Ribbon? @Binding var draggedItem: Ribbon?
@Binding var isDragging: Bool @Binding var isDragging: Bool
let appDatabase: AppDatabase let appDatabase: AppDatabase
func dropUpdated(info: DropInfo) -> DropProposal? { func dropUpdated(info _: DropInfo) -> DropProposal? {
return DropProposal(operation: .move) return DropProposal(operation: .move)
} }
func dropExited(info: DropInfo) { func dropExited(info _: DropInfo) {
print("EXITED") print("EXITED")
isDragging = false isDragging = false
} }
func dropEntered(info: DropInfo) { func dropEntered(info _: DropInfo) {
Task { Task {
isDragging = true isDragging = true
if (draggedItem == nil) { if draggedItem == nil {
return return
} }
if disableDrop { if disableDrop {
return; return
} }
var newRibbon = draggedItem! var newRibbon = draggedItem!
var newDest = destinationItem var newDest = destinationItem
@ -935,8 +919,7 @@ struct DropViewDelegate: DropDelegate {
print("dest item") print("dest item")
print(destinationItem) print(destinationItem)
if draggedItem!.id! == destinationItem.id! {
if (draggedItem!.id! == destinationItem.id!) {
return return
} }
@ -953,7 +936,7 @@ struct DropViewDelegate: DropDelegate {
} }
} }
func performDrop(info: DropInfo) -> Bool { func performDrop(info _: DropInfo) -> Bool {
print("PERFORMED DROPPPP") print("PERFORMED DROPPPP")
draggedItem = nil draggedItem = nil
isDragging = false isDragging = false
@ -971,7 +954,9 @@ struct ContentView_Previews: PreviewProvider {
extension View { extension View {
func Print(_ vars: Any...) -> some View { func Print(_ vars: Any...) -> some View {
for v in vars { print(v) } for v in vars {
print(v)
}
return EmptyView() return EmptyView()
} }
} }

View File

@ -1,8 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"> <plist version="1.0">
<dict> <dict/>
<key>com.apple.developer.authentication-services.autofill-credential-provider</key>
<true/>
</dict>
</plist> </plist>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>_XCCurrentVersionName</key>
<string>gloss.xcdatamodel</string>
</dict>
</plist>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1" systemVersion="11A491" minimumToolsVersion="Automatic" sourceLanguage="Swift" usedWithCloudKit="false" userDefinedModelVersionIdentifier="">
<entity name="Item" representedClassName="Item" syncable="YES" codeGenerationType="class">
<attribute name="timestamp" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
</entity>
<elements>
<element name="Item" positionX="-63" positionY="-18" width="128" height="44"/>
</elements>
</model>