<commit_before>export default function sources(state = [], action) {
  switch (action.type) {
    case 'LOAD_SOURCES': {
      return action.payload.sources;
    }

    case 'SOURCE_UPDATED': {
      const {source} = action.payload;
      const updatedIndex = state.findIndex((s) => s.id === source.id);
      const updatedSources = Object.assign({}, state, {
        [updatedIndex]: source,
      });
      return updatedSources;
    }<commit_msg>updateSource reducer needs to return an array<commit_after>export default function sources(state = [], action) {
  switch (action.type) {
    case 'LOAD_SOURCES': {
      return action.payload.sources;
    }

    case 'SOURCE_UPDATED': {
      const {source} = action.payload;
      const updatedIndex = state.findIndex((s) => s.id === source.id);
      const updatedSources = Object.assign([], state);
      updatedSources[updatedIndex] = source;
      return updatedSources;
    }
{'fraction_non_alphanumeric': 0.13010752688172042, 'fraction_numerical': 0.0, 'mean_word_length': 3.1194690265486726, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3726183', 'n_tokens_mistral': 270, 'n_tokens_neox': 262, 'n_words': 64}