Skip to content

Conversation

@ximluo
Copy link
Member

@ximluo ximluo commented Sep 5, 2025

No description provided.

Copy link
Member

@anli5005 anli5005 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking good so far! Main blocker is adding a way to access the share screen from the new reservations tab - I think you were working on that before we redid most of the GSR flow.

Other than that, some comments:

location: String,
start: Date,
end: Date,
completion: @escaping (Bool) -> Void
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Would prefer we made this async

completion: @escaping (Bool) -> Void
) {
let eventStore = EKEventStore()
eventStore.requestAccess(to: .event) { granted, error in
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we use something like requestWriteOnlyAccessToEvents() instead?

Alternatively, there's a way to present an EKEventEditViewController without asking for permission - it probably requires more effort on the user's part, but might be worth looking into this.


/// Observed by SwiftUI to detect new deep links.
class DeepLinkManager: ObservableObject {
@Published var lastResolvedLink: GSRShareModel?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would probably be best to migrate this to some sort of enum so we can support multiple shared links, but that's a simple change in the future so won't block on this

fatalError("Unhandled auth manager state: \(authManager.state)")
}
}
.onAppear {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we make this a .onChange on deepLinkManager.lastResolvedLink instead?

}
.store(in: &cancellables)
}
.sheet(isPresented: $showShareDetail) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It might be cleaner if we use the other variant of the .sheet modifier so we can combine currentShare and showShareDetail into one state variable.

Comment on lines 28 to +48
<key>CFBundleURLName</key>
<string></string>
<string>org.pennlabs.PennMobile.dev</string>
<key>CFBundleURLSchemes</key>
<array>
<string>https</string>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string></string>
</dict>
</array>
</dict>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array/>
<array>
<string>https</string>
</array>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a requirement for universal link support?

Comment on lines -56 to -57
<key>NSLocationWhenInUseUsageDescription</key>
<string>Enable to show your current location on the map</string>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was there a reason we removed this?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to add some sort of purpose string for calendar access? Not sure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants