Postanowiłem poczyścić dzisiaj componenty i wyeksportować niektóre funkcje do oddzielnych plików, jednak skonczylo sie to jakims cyrkiem i nielogicznym zachowaniem aplikacji.

Starajac sie jak najkrocej opisac problem:
Apka to gra point'n'click. Po kliknieciu w element przedmiot zostaje aktywowany i włącza się listener na window. Jeśli user nie kliknie w odpowiedni element na stronie przedmiot zostaje zdezaktywowany. I wszystko działało elegancko do czasu wyeksportowania funkcji odpowiedzialnej za nasłuchiwanie window.onclick.

Teraz wygląda to tak, że przedmiot zachowuje się jakbycały czas był aktywny, mimo to, że został zdezaktywowany i console.logi w akcjach to potwierdzają. W propsach jednak ciągle figuruje jako aktywny.

Zamieszczę dwa codepeny, żeby pokazać stan w jakim wszystkim działało a następnie obecny wygląd, niesprawny. Mam nadzieję, że połapiecie się o co w tym chodzi:

(chodzi o handleBoltCuttersClicked i chainMechanics)
https://codepen.io/anon/pen/KQMKjv?editors=1010

A teraz ten sam komponent po wyeksportowaniu:
https://codepen.io/anon/pen/QQEWev?editors=0010

i plik z funkcja:
https://codepen.io/anon/pen/VQjwoo

Na linijce 18 dostaje info w konsoli, ze
"type: "ACTIVE", item: "boltcutters", isActive: false}"
jednak console.log 21 zwraca "true", przez co odpalają się chyba dwa ify naraz.

Mam nadzieję, że ktoś rozumie o co chodzi, bo sam ledwo ogarniam co się tu teraz odwala.