mirror of
https://github.com/aelve/guide.git
synced 2024-11-23 21:13:07 +03:00
Don't do anything if the item itself doesn't exist
This commit is contained in:
parent
3d46a83c02
commit
ee6ba3e6d6
27
src/Types.hs
27
src/Types.hs
@ -560,19 +560,20 @@ deleteTrait itemId traitId = do
|
||||
let itemLens :: Lens' GlobalState Item
|
||||
itemLens = itemById itemId
|
||||
let isOurTrait trait = trait^.uid == traitId
|
||||
item <- use itemLens
|
||||
-- Determine whether the trait is a pro or a con, and proceed accordingly
|
||||
case (find isOurTrait (item^.pros), find isOurTrait (item^.cons)) of
|
||||
-- It's in neither group, which means it was deleted. Do nothing.
|
||||
(Nothing, Nothing) -> return ()
|
||||
-- It's a pro
|
||||
(Just trait, _) -> do
|
||||
itemLens.pros %= deleteFirst isOurTrait
|
||||
itemLens.prosDeleted %= (trait:)
|
||||
-- It's a con
|
||||
(_, Just trait) -> do
|
||||
itemLens.cons %= deleteFirst isOurTrait
|
||||
itemLens.consDeleted %= (trait:)
|
||||
mbItem <- preuse itemLens
|
||||
for_ mbItem $ \item -> do
|
||||
-- Determine whether the trait is a pro or a con, and proceed accordingly
|
||||
case (find isOurTrait (item^.pros), find isOurTrait (item^.cons)) of
|
||||
-- It's in neither group, which means it was deleted. Do nothing.
|
||||
(Nothing, Nothing) -> return ()
|
||||
-- It's a pro
|
||||
(Just trait, _) -> do
|
||||
itemLens.pros %= deleteFirst isOurTrait
|
||||
itemLens.prosDeleted %= (trait:)
|
||||
-- It's a con
|
||||
(_, Just trait) -> do
|
||||
itemLens.cons %= deleteFirst isOurTrait
|
||||
itemLens.consDeleted %= (trait:)
|
||||
|
||||
-- other methods
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user