Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions components/forms/Sliders.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,26 +9,29 @@ export type SliderProps = {
dataKey: keyof QuantData;
};
export default function Slider(props: SliderProps) {
const keys = Object.keys(props.possibleValues);
const num = keys.indexOf(props.value);
const values = Object.values(props.possibleValues);
const num = values.indexOf(props.value);

return (
<div className="w-full text-center">
<h1 className="font-semibold text-xl mb-2">{props.title}</h1>
<input
onChange={(e) => {
props.callback(props.dataKey as string, keys[e.target.valueAsNumber]);
props.callback(
props.dataKey as string,
values[e.target.valueAsNumber],
);
}}
type="range"
min={0}
max={keys.length - 1}
max={values.length - 1}
value={num}
className="range range-primary"
step="1"
/>
<div className="w-full flex justify-between text-lg px-2 text-center">
{keys.map((key, i) => {
return <span key={i}>{key}</span>;
{values.map((value, i) => {
return <span key={i}>{value}</span>;
})}
</div>
</div>
Expand Down
32 changes: 23 additions & 9 deletions components/stats/SmallGraph.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,6 @@ export default function SmallGraph(props: {
return 1;
}
} else if (key === "LevelClimbed") {
///switch (data) {
//case ReefscapeEnums.EndgameClimbStatus.None:
//return 0;
//case ReefscapeEnums.EndgameClimbStatus.Park:
//return 0.33;
//case ReefscapeEnums.EndgameClimbStatus.High:
//return 0.66;
//case ReefscapeEnums.EndgameClimbStatus.Low:
//return 1;
switch (data) {
case RebuiltEnums.LevelClimbed.No:
return 0;
Expand All @@ -106,6 +97,29 @@ export default function SmallGraph(props: {
case RebuiltEnums.LevelClimbed.Third:
return 1;
}
} else if (key === "TotalFuelPoints") {
switch (data) {
default:
return (
data["AutoFuelPointsOne"] +
data["FuelPointsOne"] +
(data["AutoFuelPointsFive"] + data["FuelPointsFive"]) * 5 +
(data["AutoFuelPointsTen"] + data["FuelPointsTen"]) * 10
);
}
} else if (key === "DriverSkill") {
switch (data) {
case RebuiltEnums.DriverSkill.One:
return 1;
case RebuiltEnums.DriverSkill.Two:
return 2;
case RebuiltEnums.DriverSkill.Three:
return 3;
case RebuiltEnums.DriverSkill.Four:
return 4;
case RebuiltEnums.DriverSkill.Five:
return 5;
}
}
return data;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/Auth.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export const AuthenticationOptions: AuthOptions = {
},
}),
SlackProvider({
clientId: process.env.NEXT_PUBLIC_SLACK_CLIENT_ID as string,
clientId: process.env.SLACK_CLIENT_ID as string,
clientSecret: process.env.SLACK_CLIENT_SECRET as string,
allowDangerousEmailAccountLinking: true,
profile: async (profile) => {
Expand Down
12 changes: 9 additions & 3 deletions lib/Enums.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ export enum Defense {
Full = "Full",
}

export enum FTCEndgame {
/*export enum FTCEndgame {
None = "None",
Parked = "Parked",
TouchingTheLowerBar = "Touching the Lower Bar",
LowClimb = "Low Climb",
HighClimb = "High Climb",
}
}*/

export enum IntakeTypes {
None = "None",
Expand All @@ -34,7 +34,6 @@ export enum Motors {
CIMs = "CIM",
Krakens = "Krakens",
Falcons = "Falcons",
Talons = "Talons",
Neos = "Neos",
}

Expand Down Expand Up @@ -136,6 +135,13 @@ export namespace RebuiltEnums {
Second = "Second",
Third = "Third",
}
export enum DriverSkill {
One = "1",
Two = "2",
Three = "3",
Four = "4",
Five = "5",
}
}

export namespace DecodeEnums {
Expand Down
47 changes: 28 additions & 19 deletions lib/Layout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,30 +224,39 @@ export function keyToType(
RebuiltEnums.DriveOverBump,
RebuiltEnums.DriveUnderTrench,
RebuiltEnums.LevelClimbed,
RebuiltEnums.DriverSkill,
DecodeEnums.AutoStatus,
DecodeEnums.EndgameParkStatus,
];

if (key === "Defense") return Defense;
if (key === "swerveLevel") return SwerveLevel;

if (key === "StartedWith") return IntoTheDeepEnums.StartedWith;
if (key === "EndgameLevelClimbed")
return IntoTheDeepEnums.EndgameLevelClimbed;

if (key == "AutoCapabilities") return ReefscapeEnums.AutoCapabilities;
if (key == "Climbing") return ReefscapeEnums.Climbing;
if (key == "DriveThroughDeepCage") return ReefscapeEnums.DriveThroughDeepCage;
if (key == "EndgameClimbStatus") return ReefscapeEnums.EndgameClimbStatus;

//if (key == "AutoAbilities") return RebuiltEnums.AutoAbilities;
if (key == "ClimbingCapabilities") return RebuiltEnums.ClimbingCapabilities;
if (key == "DriveOverBump") return RebuiltEnums.DriveOverBump;
if (key == "DiveUnderTrench") return RebuiltEnums.DriveUnderTrench;
if (key == "LevelClimbed") return RebuiltEnums.LevelClimbed;
// Resolve by field name first. Values such as "None" occur in several enums.
const enumByKey: Record<string, object> = {
Defense,
EndgameDefenseStatus: Defense,
EndgameDefense: Defense,
intakeType: IntakeTypes,
swerveLevel: SwerveLevel,
StartedWith: IntoTheDeepEnums.StartedWith,
EndgameLevelClimbed: IntoTheDeepEnums.EndgameLevelClimbed,
AutoCapabilities: ReefscapeEnums.AutoCapabilities,
Climbing: ReefscapeEnums.Climbing,
DriveThroughDeepCage: ReefscapeEnums.DriveThroughDeepCage,
EndgameClimbStatus: ReefscapeEnums.EndgameClimbStatus,
ClimbingCapabilities: RebuiltEnums.ClimbingCapabilities,
DriveOverBump: RebuiltEnums.DriveOverBump,
DriveUnderTrench: RebuiltEnums.DriveUnderTrench,
LevelClimbed: RebuiltEnums.LevelClimbed,
DriverSkill: RebuiltEnums.DriverSkill,
EndgameParkStatusDecode: DecodeEnums.EndgameParkStatus,
AutoStatus: DecodeEnums.AutoStatus,
Motors,
};

if (key == "EndgameParkStatusDecode") return DecodeEnums.EndgameParkStatus;
if (key == "AutoStatus") return DecodeEnums.AutoStatus;
if (key === "drivetrain")
return league === League.FRC ? FrcDrivetrain : FtcDrivetrain;
if (key === "FrcDrivetrain") return FrcDrivetrain;
if (key === "FtcDrivetrain") return FtcDrivetrain;
if (enumByKey[key]) return enumByKey[key];

for (const e of enums) {
if (Object.values(e).includes(exampleData[key])) return e;
Expand Down
2 changes: 1 addition & 1 deletion lib/Types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ export abstract class PitReportData {

image: string = "/robot.jpg";
drivetrain: FrcDrivetrain = FrcDrivetrain.Tank;
motorType: Motors = Motors.Talons;
motorType: Motors = Motors.Krakens;
swerveLevel: SwerveLevel = SwerveLevel.None;
comments: string = "";
}
Expand Down
13 changes: 9 additions & 4 deletions lib/games.ts

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Potential issue: QuantitativeData now defines Defense, but quantitativeReportLayout references EndgameDefenseStatus. Unless EndgameDefenseStatus is linked elsewhere, the form layout should reference Defense to match the data property.

Original file line number Diff line number Diff line change
Expand Up @@ -1906,10 +1906,13 @@ export namespace Rebuilt {
FuelPointsFive: number = 0;
FuelPointsTen: number = 0;

TotalFuelScored: number = 0;

AutoClimbedLevelOne: boolean = false;

EngameDefenseStatus: Defense = Defense.None;
Defense: Defense = Defense.None;
LevelClimbed: RebuiltEnums.LevelClimbed = RebuiltEnums.LevelClimbed.No;
DriverSkill: RebuiltEnums.DriverSkill = RebuiltEnums.DriverSkill.One;
}
export class PitData extends PitReportData {
CanDriveOverBump: boolean = false;
Expand All @@ -1919,7 +1922,6 @@ export namespace Rebuilt {
RobotWeight: number = 0;
RobotWidth: number = 0;
RobotLength: number = 0;
AutoAbilities: string = "";
ClimbingCapabilities: RebuiltEnums.ClimbingCapabilities =
RebuiltEnums.ClimbingCapabilities.No;
}
Expand All @@ -1930,8 +1932,11 @@ export namespace Rebuilt {
{ key: "CanDeClimb", label: "Can De-Climb?" },
{ key: "ClimbingCapabilities", label: "Climbing?" },
{ key: "HopperVolume", label: "Hopper Volume?" },
{ key: "RobotWeight", label: "Robot Weight?" },
{ key: "RobotWidth", label: "Robot Width?" },
{ key: "RobotLength", label: "Robot Length?" },
],
Auto: [{ key: "AutoAbilities", label: "Auto Capabilities?" }],
//Auto: [{ key: "AutoAbilities", label: "Auto Capabilities?" }],
};
const quantitativeReportLayout: FormLayoutProps<QuantitativeData> = {
Auto: [
Expand Down Expand Up @@ -1979,7 +1984,7 @@ export namespace Rebuilt {
],
],
],
"Post Match": ["LevelClimbed", "EngameDefenseStatus"],
"Post Match": ["LevelClimbed", "EndgameDefenseStatus", "DriverSkill"],
};

const statsLayout: StatsLayout<PitData, QuantitativeData> = {
Expand Down
Loading
Loading