message: UHydrate current armour for mod placement.
diff: -import { allItemsSelector } from 'app/inventory/selectors';
  +import { DimItem } from 'app/inventory/item-types';
  +import { allItemsSelector, sortedStoresSelector } from 'app/inventory/selectors';
  +import { getCurrentStore } from 'app/inventory/stores-helpers';
  import { Loadout } from 'app/loadout-drawer/loadout-types';
  import { armorBuckets } from 'app/search/d2-known-values';
  import { RootState } from 'app/store/types';
  -import { compareBy } from 'app/utils/comparators';
  import { useCallback } from 'react';
  import { shallowEqual, useSelector } from 'react-redux';
  @@ -15,11 +16,22 @@ const bucketOrder = [
  ];
  export function useEquippedLoadoutArmor(loadout: Loadout) {
  + const stores = useSelector(sortedStoresSelector);
  +
  const loadoutItemSelector = useCallback(
  (state: RootState) => {
  + const currentStore = getCurrentStore(stores)!;
  + // TODO (ryan) how do we handle multiple chars with the same store? Does it matter?
  + const storeToHydrateFrom =
  + currentStore.classType === loadout.classType
  + ? currentStore
  + : stores.find((store) => store.classType === loadout.classType);
  + const currentItems = storeToHydrateFrom?.items.filter(
  + (item) => item.equipped && item.bucket.inArmor
  + );
  const equippedLoadoutItems = loadout.items.filter((item) => item.equipped);
  const allItems = allItemsSelector(state);
  - const loadoutDimItems = [];
  + const loadoutDimItems: DimItem[] = [];
  // TODO: if there's not an item in one of the slots, pick the current equipped!
  for (const item of allItems) {
  @@ -31,9 +43,15 @@ export function useEquippedLoadoutArmor(loadout: Loadout) {
  }
  }
  - return loadoutDimItems.sort(compareBy((item) => bucketOrder.indexOf(item.bucket.hash)));
  + return bucketOrder
  + .map(
  + (bucketHash) =>
  + loadoutDimItems.find((item) => item.bucket.hash === bucketHash) ||
  + currentItems?.find((item) => item.bucket.hash === bucketHash)
  + )
  + .filter((item): item is DimItem => Boolean(item));
  },
  - [loadout]
  + [loadout, stores]
  );
  return useSelector(loadoutItemSelector, shallowEqual);
  