mirror of
https://github.com/NinjaCheetah/RIT-Dining.git
synced 2026-01-17 12:05:57 -05:00
- The favorites model now lives inside of the base dining model, since it was only ever used in places where the main dining model was also available and is only relevant when the dining model is available. - Removed unnecessary instances of models that were going unused. - Moved the favorite/map/menu buttons in the top right of the DetailView into the right side toolbar. - This frees up a good bit of space at the top of the DetailView and looks cleaner, especially with iOS 26's new toolbar style. - Actually added a copyright string to the about screen. More refactors, both internally and for the UI, will be coming soon.
75 lines
3.2 KiB
Swift
75 lines
3.2 KiB
Swift
//
|
|
// AboutView.swift
|
|
// TigerDine
|
|
//
|
|
// Created by Campbell on 9/12/25.
|
|
//
|
|
|
|
import SwiftUI
|
|
|
|
struct AboutView: View {
|
|
@Environment(\.openURL) private var openURL
|
|
let appVersionString: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String
|
|
let buildNumber: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleVersion") as! String
|
|
let copyrightString: String = Bundle.main.object(forInfoDictionaryKey: "NSHumanReadableCopyright") as! String
|
|
|
|
var body: some View {
|
|
VStack(alignment: .leading) {
|
|
Image("Icon")
|
|
.resizable()
|
|
.frame(width: 128, height: 128)
|
|
.clipShape(RoundedRectangle(cornerRadius: 20))
|
|
Text("TigerDine")
|
|
.font(.title)
|
|
.fontWeight(.bold)
|
|
Text("An unofficial RIT Dining app")
|
|
.font(.subheadline)
|
|
Text("Version \(appVersionString) (\(buildNumber))")
|
|
.foregroundStyle(.secondary)
|
|
Text(copyrightString)
|
|
.foregroundStyle(.secondary)
|
|
.font(.caption)
|
|
.padding(.bottom, 2)
|
|
VStack(alignment: .leading, spacing: 10) {
|
|
Text("Dining locations, their descriptions, and their opening hours are sourced from the RIT student-run TigerCenter API. Building occupancy information is sourced from the official RIT maps API. Menu and nutritional information is sourced from the data provided to FD MealPlanner by RIT Dining through the FD MealPlanner API.")
|
|
Text("This app is not affiliated, associated, authorized, endorsed by, or in any way officially connected with the Rochester Institute of Technology. This app is student created and maintained.")
|
|
VStack(alignment: .center, spacing: 8) {
|
|
HStack(spacing: 8) {
|
|
Button(action: {
|
|
openURL(URL(string: "https://github.com/NinjaCheetah/TigerDine")!)
|
|
}) {
|
|
Label("Source Code", systemImage: "network")
|
|
}
|
|
Button(action: {
|
|
openURL(URL(string: "https://tigercenter.rit.edu/")!)
|
|
}) {
|
|
Label("TigerCenter", systemImage: "fork.knife.circle")
|
|
}
|
|
}
|
|
HStack(spacing: 8) {
|
|
Button(action: {
|
|
openURL(URL(string: "https://maps.rit.edu/")!)
|
|
}) {
|
|
Label("Official RIT Map", systemImage: "map")
|
|
}
|
|
Button(action: {
|
|
openURL(URL(string: "https://fdmealplanner.com/")!)
|
|
}) {
|
|
Label("FD MealPlanner", systemImage: "menucard")
|
|
}
|
|
}
|
|
}
|
|
.frame(maxWidth: .infinity)
|
|
}
|
|
Spacer()
|
|
}
|
|
.padding()
|
|
.navigationTitle("About")
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
AboutView()
|
|
}
|