Skip to content

Commit

Permalink
Move bridge to separate file
Browse files Browse the repository at this point in the history
  • Loading branch information
rahulon12 committed Dec 26, 2024
1 parent bb58b72 commit 42af1fd
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 32 deletions.
6 changes: 5 additions & 1 deletion CanvasPlusPlayground.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@
B7AD54F52CD41D7900FB09BB /* Data.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7AD54EF2CD41D7900FB09BB /* Data.swift */; };
B7AD54F62CD41D7900FB09BB /* DeviceStat.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7AD54F02CD41D7900FB09BB /* DeviceStat.swift */; };
B7AD550C2CD4257B00FB09BB /* IntelligenceOnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7AD550B2CD4257400FB09BB /* IntelligenceOnboardingView.swift */; };
B7D1365E2D15B63E0044A9E4 /* CourseGradeCalculatorBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7D1365D2D15B63E0044A9E4 /* CourseGradeCalculatorBridge.swift */; };
B7D95D772D07C3D3002AD955 /* ICSParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7D95D762D07C3D3002AD955 /* ICSParser.swift */; };
B7D95DB72D0A8D78002AD955 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7D95DB62D0A8D75002AD955 /* SettingsView.swift */; };
B7E59A0B2D1CFF8C001836FE /* GetAssignmentGroupsRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7E59A0A2D1CFF8C001836FE /* GetAssignmentGroupsRequest.swift */; };
Expand Down Expand Up @@ -190,6 +191,7 @@
B7AD54F12CD41D7900FB09BB /* LLMEvaluator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LLMEvaluator.swift; sourceTree = "<group>"; };
B7AD54F22CD41D7900FB09BB /* Models.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Models.swift; sourceTree = "<group>"; };
B7AD550B2CD4257400FB09BB /* IntelligenceOnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntelligenceOnboardingView.swift; sourceTree = "<group>"; };
B7D1365D2D15B63E0044A9E4 /* CourseGradeCalculatorBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CourseGradeCalculatorBridge.swift; sourceTree = "<group>"; };
B7D95D762D07C3D3002AD955 /* ICSParser.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ICSParser.swift; sourceTree = "<group>"; };
B7D95DB62D0A8D75002AD955 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
B7E59A0A2D1CFF8C001836FE /* GetAssignmentGroupsRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetAssignmentGroupsRequest.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -544,8 +546,9 @@
B7F950442D149C6E004BB470 /* GradeCalculator */ = {
isa = PBXGroup;
children = (
B7F950422D149C5E004BB470 /* GradeCalculatorView.swift */,
B7F950402D14928C004BB470 /* CourseGradeCalculator.swift */,
B7D1365D2D15B63E0044A9E4 /* CourseGradeCalculatorBridge.swift */,
B7F950422D149C5E004BB470 /* GradeCalculatorView.swift */,
);
path = GradeCalculator;
sourceTree = "<group>";
Expand Down Expand Up @@ -714,6 +717,7 @@
9B9C2E062C93F94C00E4B16B /* CourseAnnouncementDetailView.swift in Sources */,
A3D161512D178615004055FB /* GetUserProfileRequest.swift in Sources */,
A3D161492D169C23004055FB /* APIRequest+Storage.swift in Sources */,
B7D1365E2D15B63E0044A9E4 /* CourseGradeCalculatorBridge.swift in Sources */,
9B6663E32C9853BC0060990E /* HTMLTextView.swift in Sources */,
B7AD550C2CD4257B00FB09BB /* IntelligenceOnboardingView.swift in Sources */,
A3049B792D15E162002F3166 /* GetCourseRootFolder.swift in Sources */,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,37 +5,7 @@
// Created by Rahul on 12/19/24.
//

import SwiftUI

@Observable
class CourseGradeCalculatorBridge {
typealias GradeCalculatorAssignmentGroup = CourseGradeCalculator.GradeCalculatorAssignmentGroup

private(set) var _calculator: CourseGradeCalculator

var assignmentGroups: [GradeCalculatorAssignmentGroup] {
get {
_calculator.assignmentGroups
}

set {
_calculator.assignmentGroups = newValue
}
}

var finalGrade: String {
_calculator.finalGrade
}

var expandedAssignmentGroups: [GradeCalculatorAssignmentGroup: Bool] = [:]

init(from assignmentGroups: [AssignmentGroup]) {
_calculator = CourseGradeCalculator(from: assignmentGroups)
expandedAssignmentGroups = Dictionary(
uniqueKeysWithValues: _calculator.assignmentGroups.lazy.map { ($0, true) }
)
}
}
import Foundation

struct CourseGradeCalculator {
struct GradeCalculatorAssignmentGroup: Identifiable, Hashable {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
//
// CourseGradeCalculatorBridge.swift
// CanvasPlusPlayground
//
// Created by Rahul on 12/20/24.
//

import SwiftUI

@Observable
class CourseGradeCalculatorBridge {
typealias GradeCalculatorAssignmentGroup = CourseGradeCalculator.GradeCalculatorAssignmentGroup

private(set) var _calculator: CourseGradeCalculator

var assignmentGroups: [GradeCalculatorAssignmentGroup] {
get {
_calculator.assignmentGroups
}

set {
_calculator.assignmentGroups = newValue
}
}

var finalGrade: String {
_calculator.finalGrade
}

var expandedAssignmentGroups: [GradeCalculatorAssignmentGroup: Bool] = [:]

init(from assignmentGroups: [AssignmentGroup]) {
_calculator = CourseGradeCalculator(from: assignmentGroups)
expandedAssignmentGroups = Dictionary(
uniqueKeysWithValues: _calculator.assignmentGroups.lazy.map { ($0, true) }
)
}
}

0 comments on commit 42af1fd

Please sign in to comment.