I'll be brief because kids are crying and we need to eat dinner soon.

I did a small revamp of history. I was storing each time a comparison ran, even if the two movies or shows were exactly the same. So first, I added a toggle to hide duplicates. Then I started on deletion. I wanted to show all items when you went to delete them. It started to get a bit unwieldy. So I removed that setting. Back to seeing all your comparisons. Then I decided, instead of adding a new entry each time, if there is an existing one, update the history item. Maybe I can add a counter for the number of times those two were compared or something.

Anyway, came full circle a couple times, but happy where I landed.

Did have a strange issue with EditMode where the environment was not being set how I would expect. I ended up having to declare my own EditMode state and then pass that as an environment to EditButton and my List. Otherwise, my History View had no idea if the list was editing or not.

struct History: View {
    @State var editMode: EditMode = .inactive

    var body: some View {
        List {
            ForEach(historyItems) { historyItem in
                ...
            }
            .onDelete { indexSet in
                ...
            }
        }
        .environment(\.editMode, $editMode)
        .navigationTitle("History")
        .toolbar {
            ToolbarItem(placement: .primaryAction) {
                EditButton()
                    .environment(\.editMode, $editMode)
            }
        }
    }
}