{"componentChunkName":"component---src-templates-post-js","path":"/blog/2019/03/23/cshooks-usetrie-a-react-hook-for-typeahead-autocomplete/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://sung.codes"}},"mdx":{"id":"cd3cdae8-aa28-506d-a601-5053112b31ab","body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"@cshooks/usetrie, A React Hook for Typeahead/Autocomplete\",\n  \"date\": \"2019-03-23\",\n  \"banner\": \"./images/featured-image.jpg\",\n  \"published_at\": \"2019-03-23T19:09:37.000Z\",\n  \"tags\": \"react, javascript, npm, opensource\",\n  \"author\": \"Sung M. Kim\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Photo by\\xA0\"), mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://unsplash.com/photos/MoDcnVRN5JU?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\"\n  }), mdx(\"em\", {\n    parentName: \"a\"\n  }, \"Jamie Street\")), mdx(\"em\", {\n    parentName: \"p\"\n  }, \"\\xA0on\\xA0\"), mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://unsplash.com/search/photos/retriever?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText\"\n  }), mdx(\"em\", {\n    parentName: \"a\"\n  }, \"Unsplash\")), \" \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"- \\\"trie\\\" is from \\\"\", mdx(\"a\", _extends({\n    parentName: \"em\"\n  }, {\n    \"href\": \"https://en.wikipedia.org/wiki/Trie#History_and_etymology\"\n  }), \"Retrieval\"), \"\\\" thus the cute\"), \" \\uD83D\\uDC36 \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"\\\"Retriever\\\"\")), mdx(\"p\", null, \"I've released \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://www.npmjs.com/package/@cshooks/usetrie\"\n  }), \"@cshooks/usetrie\"), \".\"), mdx(\"p\", null, \"It's a React Hook for \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://en.wikipedia.org/wiki/Typeahead\"\n  }), \"Typeahead\"), \"/autocompletion.\"), mdx(\"p\", null, mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/cshooks/hooks\"\n  }), \"@cshooks/hooks\"), \" will be the home \\uD83C\\uDFE0 of Computer Science data structures/algorithms related hooks.\"), mdx(\"h2\", null, \"\\uD83E\\uDD14 Why?\"), mdx(\"p\", null, \"When you have a list of texts you want to match by prefix, you have to match each text in an array one by one, which can be time consuming.\"), mdx(\"p\", null, mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://en.wikipedia.org/wiki/Trie\"\n  }), \"Trie\"), \" is a data structure, which stores text in a tree, which enables a fast prefix look up.\", mdx(\"br\", {\n    parentName: \"p\"\n  }), \"\\n\", \"And \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"useTrie\"), \" works as a \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://en.wikipedia.org/wiki/Facade_pattern\"\n  }), \"facade\"), \" to enable fast prefix search.\"), mdx(\"h2\", null, \"\\uD83D\\uDD27 How?\"), mdx(\"p\", null, \"Check out the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/cshooks/hooks/blob/master/packages/useTrie/README.md\"\n  }), \"README\"), \" file, which explains the usage in detail.\"), mdx(\"p\", null, \"Here are some quick demo Sandboxes for the impatients.\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://codesandbox.io/s/3jzy58wqq\"\n  }), \"Simple demo add/remove texts\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://codesandbox.io/s/zz2mxlxzp\"\n  }), \"String/object array & Reddit data demo\"))), mdx(\"p\", null, mdx(\"img\", _extends({\n    parentName: \"p\"\n  }, {\n    \"src\": \"/b31adae6dc22f751a659afa30e8182ce/2019-03-23_13-44-52.gif\",\n    \"alt\": null\n  }))), mdx(\"p\", null, \"Demos\"), mdx(\"h2\", null, \"\\u2795 Additional Info\"), mdx(\"p\", null, \"I've created this initially for academic purposes to learn Trie data structure so \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"Trie\"), \" class is imperative and \", mdx(\"code\", _extends({\n    parentName: \"p\"\n  }, {\n    \"className\": \"language-text\"\n  }), \"useTrie\"), \" hook was forced to fit to work with declarative nature of React as shown below, which is not ideal.\"), mdx(\"p\", null, mdx(\"div\", _extends({\n    parentName: \"p\"\n  }, {\n    \"id\": \"gist95297368\",\n    \"className\": \"gist\"\n  }), \"\\n    \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-file\"\n  }), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-data\"\n  }), \"\\n        \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"js-gist-file-update-container js-task-list-container file-box\"\n  }), \"\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"id\": \"file-usetrie-jsx\",\n    \"className\": \"file my-2\"\n  }), \"\\n    \\n\\n  \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"itemProp\": \"text\",\n    \"className\": \"Box-body p-0 blob-wrapper data type-jsx\"\n  }), \"\\n      \\n\", mdx(\"table\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"highlight tab-size js-file-line-container\",\n    \"data-tab-size\": \"8\",\n    \"data-paste-markdown-skip\": \"\"\n  }), \"\\n      \", mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L1\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"1\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC1\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"function\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"reducer\"), \"(\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"ReducerState\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"action\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"TrieAction\"), \"): \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"ReducerState\"), \" {\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L2\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"2\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC2\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"switch\"), \" (\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"action\")), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"type\"), \") {\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L3\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"3\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC3\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"case\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\"), \"ADD\", mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\")), \":\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L4\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"4\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC4\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"      \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\")), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"add\"), \"(\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"action\")), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"word\"), \");\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L5\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"5\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC5\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"      \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"return\"), \" { \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"...\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-s\"\n  }), \"trie\"), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\")), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), \" };\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L6\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"6\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC6\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"case\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\"), \"REMOVE\", mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\")), \":\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L7\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"7\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC7\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"      \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\")), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"remove\"), \"(\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"action\")), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"word\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"as\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"string\"), \");\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L8\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"8\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC8\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"      \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"return\"), \" { \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"...\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-s\"\n  }), \"trie\"), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\")), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), \" };\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L9\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"9\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC9\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"default\"), \":\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L10\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"10\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC10\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"      \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"return\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\"), \";\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L11\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"11\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC11\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  }\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L12\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"12\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC12\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"}\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L13\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"13\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC13\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  })), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L14\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"14\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC14\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"function\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"useTrie\"), \"(\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L15\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"15\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC15\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"initialWords\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"Words\"), \",\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L16\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"16\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC16\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"isCaseInsensitive\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"=\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"true\"), \",\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L17\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"17\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC17\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"getText\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \":\"), \" (\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"obj\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"any\"), \") \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"=>\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"string\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"=\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"obj\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"=>\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"obj\")), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L18\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"18\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC18\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"): \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"ITrie\"), \" {\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L19\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"19\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC19\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"const\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"=\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"new\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-v\"\n  }), \"Trie\"), \"(\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"initialWords\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"isCaseInsensitive\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"getText\"), \");\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L20\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"20\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC20\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"const\"), \" [\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"dispatch\"), \"] \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"=\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"React\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"useReducer\"), \"(\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"reducer\"), \", { \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-s\"\n  }), \"word\"), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\"), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\")), \" });\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L21\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"21\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC21\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  })), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L22\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"22\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC22\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"function\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"add\"), \"(\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"word\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"Word\"), \"): \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"void\"), \" {\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L23\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"23\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC23\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"dispatch\"), \"({ \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-s\"\n  }), \"type\"), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\"), \"ADD\", mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\")), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"word\"), \" });\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L24\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"24\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC24\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  }\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L25\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"25\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC25\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  })), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L26\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"26\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC26\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"function\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"remove\"), \"(\", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"word\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), \"string\"), \"): \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"void\"), \" {\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L27\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"27\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC27\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"    \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-en\"\n  }), \"dispatch\"), \"({ \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-c1\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-s\"\n  }), \"type\"), \":\"), \" \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-s\"\n  }), mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\"), \"REMOVE\", mdx(\"span\", _extends({\n    parentName: \"span\"\n  }, {\n    \"className\": \"pl-pds\"\n  }), \"'\")), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"word\"), \" });\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L28\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"28\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC28\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  }\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L29\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"29\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC29\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  })), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L30\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"30\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC30\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"  \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"return\"), \" { \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \"...\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"state\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-k\"\n  }), \".\"), mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"trie\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"add\"), \", \", mdx(\"span\", _extends({\n    parentName: \"td\"\n  }, {\n    \"className\": \"pl-smi\"\n  }), \"remove\"), \" };\"), \"\\n      \"), \"\\n      \", mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-L31\",\n    \"className\": \"blob-num js-line-number\",\n    \"data-line-number\": \"31\"\n  })), \"\\n        \", mdx(\"td\", _extends({\n    parentName: \"tr\"\n  }, {\n    \"id\": \"file-usetrie-jsx-LC31\",\n    \"className\": \"blob-code blob-code-inner js-file-line\"\n  }), \"}\"), \"\\n      \"))), \"\\n\\n\\n  \"), \"\\n\\n  \")), \"\\n\\n      \"), \"\\n      \", mdx(\"div\", _extends({\n    parentName: \"div\"\n  }, {\n    \"className\": \"gist-meta\"\n  }), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/168fcb4c7e85fbe8573c160b32520250/raw/54a24b735910de8d0bbe697cde52c0d85359e124/useTrie.jsx\",\n    \"style\": {\n      \"cssFloat\": \"right\"\n    }\n  }), \"view raw\"), \"\\n        \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://gist.github.com/dance2die/168fcb4c7e85fbe8573c160b32520250#file-usetrie-jsx\"\n  }), \"useTrie.jsx\"), \"\\n        hosted with \\u2764 by \", mdx(\"a\", _extends({\n    parentName: \"div\"\n  }, {\n    \"href\": \"https://github.com\"\n  }), \"GitHub\"), \"\\n      \"), \"\\n    \"))), mdx(\"a\", {\n    href: \"https://gist.github.com/dance2die/168fcb4c7e85fbe8573c160b32520250\"\n  }, \"View this gist on GitHub\"), mdx(\"p\", null, \"add/remove returns a new instance\"), mdx(\"p\", null, mdx(\"em\", {\n    parentName: \"p\"\n  }, mdx(\"a\", _extends({\n    parentName: \"em\"\n  }, {\n    \"href\": \"https://github.com/cshooks/hooks/blob/master/packages/useTrie/src/index.ts#L191\"\n  }), \"https://github.com/cshooks/hooks/blob/master/packages/useTrie/src/index.ts#L191\"))), mdx(\"p\", null, \"I'd really appreciate any feedback on how I can improve the code base.\"), mdx(\"p\", null, \"I will share in the next post what I've learned and failures.\"), mdx(\"p\", null, \"And I plan to add other hooks returning \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/cshooks/hooks/projects/1\"\n  }), \"Min/Max heaps\"), \" & \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/cshooks/hooks/projects/2\"\n  }), \"Permutations\"), \".\"), mdx(\"h2\", null, \"\\uD83C\\uDFD4 Resources\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"NPM - \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://www.npmjs.com/package/@cshooks/usetrie\"\n  }), \"@cshooks/usetrie\")), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://github.com/cshooks/hooks/tree/master/packages/useTrie\"\n  }), \"Source Code\"), \" on GitHub\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"License - \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"https://github.com/cshooks/hooks/blob/master/packages/useTrie/LICENSE\"\n  }), \"MIT\"))));\n}\n;\nMDXContent.isMDXComponent = true;","frontmatter":{"title":"@cshooks/usetrie, A React Hook for Typeahead/Autocomplete","banner":{"childImageSharp":{"fluid":{"tracedSVG":"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='400'%20height='300'%20viewBox='0%200%20400%20300'%20preserveAspectRatio='none'%3e%3cpath%20d='M0%2074v74l4-2a4822%204822%200%2001119-48l5-2%2015%204%2015%205%201%205c2%205%202%206%201%206h-2l2%201%205%203c4%204%208%206%2018%208%207%202%209%206%206%2017%200%203%200%203%202%203%204%200%205-2%203-8-1-7%200-10%203-10s4%201%202%202c-1%201%200%201%201%201%202%200%204-1%206-5%204-5%209-9%2011-7l3%201h4l1%201%202%202%201%203%202%203%204%207%203%205v1l4%2014v1c-2%202-1%207%202%207%202%201%202%201%201%203s-1%202-3%200h-1l-1%202-3%202-8%208-3%201c-2%200-3%201-3%202%201%201-2%203-4%203l-2-1c-1-2-5-2-8%200h-5c-5%200-7%201-5%204%201%202%200%203-2%200-4-4-6-10-7-17v-6h-4c-8%200-10%201-10%202h3l3%201%203%201c2%200%203%201%201%201l-1%203%201%202c3%200%200%202-5%203l-4%201%204%201c4%200%206%203%202%203l-4%202-2%202%203%201%206%201c4-2%202%201-2%203s-5%202-5%201c-2-3-4-5-6-4l-5%201h-4l2%202%205%202c3%200%2011%207%209%208l-3-2h-2l-4%201-5%201c-2%201%200%203%203%203l4%201h-1l-2%201v2l-1%201%207%201%207%201%201%201%201%201%203%203%204%201c3%203%207-5%206-10-1-1-1-2%201-2h2l11%204h5l2-1v1c-2%202%201%204%206%204s6-1%203-4-3-4%201-3c3%200%203%200%202-2-2-3-1-3%202-1%202%202%203%202%203%200v-2l1-1%203-1c1-2%207-1%207%200l2%201%203%202c2%200%202%200%200-6h3l5%202%206%202%202%202%203%201c2%200%202%200%201%201v3c-1%200-1%202%201%202l1-1c0-3%208-3%2010%200h6c0-2-19-11-21-10l-2-1c0-1-3-4-7-6-10-7-10-7-6-11l4-3%204-3c2-2%203-3%207-3l4%201%2010%206c5%202%207%203%2010%202h9l4-1c3%200%209-7%209-9s-1-2-2-2c-9%203-25-2-25-8h3c1%202%209%203%2010%202h4c1%202%2010%200%2010-2s0-2%201-1c0%202%203%201%204-1l3-2%201-1-1-1-3-3c-1-2-1-2%201-2l2-1%201-1v4l1%203%201-1%202-4%203-2%2013%205%2027%2010c18%205%2019%206%2019%208s-8%208-26%2018a439%20439%200%2000-26%2016%208451%208451%200%2000-102%2059c-2-1-8%201-17%208-8%205-7%205-14-1l-21-15c-18-12-22-15-34-26-25-23-48-37-61-37-3%200-3%200-2-1h-3l-2%202-1%202-4%205c-3%206-3%209%201%2017%202%204%201%205-4%201a90%2090%200%2000-53-22l-12-3-7-1-1%2053v52h401V0h-86l1%203%202%205%202%204%202%202h-2c-3%200-6%202-5%204l-1%202c-3%200-2%202%201%203%202%201%202%202%202%203-1%203%202%207%204%207l7%206-3-1c-3-1-3-1-3%201l-1%201-1%201h1l3%202c1%202%203%203%205%200%202-2%208%201%2011%205%203%203%202%205-1%203l-10-5c-1%200-2%205%200%205s12%2011%2011%2012v3l-2%201c-3-1-7-6-7-8%200%200-1-2-3-2-1-1-3-3-3-6-1-3-2-4-4-4l-3-1h-2l1%202v1c-2%202-1%204%201%204l3%202%201%202c-3%200-2%201%201%203%202%202%203%208%201%209v3l-1%202c-3%200-8-3-8-4l-1-1-2-1h6l-3-1-3-2h-2l-6-1-8-2c-3%200-3%200-3%202v2l-5%202h-6l-3%202-1%201-2%202-1%204c1%202%201%202-2%202l-6%201-2%202c2%200%201%202-1%202s-2%200-1%201l3%201c3%200%2013%2010%2011%2011-2%200-2%200-1%202v1l-2-1-4-2c-6-1-15-5-14-7%200-3-7-4-8-2-3%203-9%205-11%204-1-1-2-1-4%201-2%204-4%202-3-3l-1-4-1-2%201-2%201-2c0-4%202-14%204-15v-3l-1-3c-1-3-1-3-1%201s0%204-1%203-2-2-1-3l-1-1-1%202-1%204v11l-2-2c-1-2-1-2-1%201l1%203c1%201%200%205-2%206l-1%204%201%201c-1%201-5%200-5-1%200-3%200-3-3-2-1%200-3%200-5-2-1-2-2-2-2-1%200%202-4%203-5%202-1-2-5-1-7%200l-3%201c-1-1-1-1%201-3%202-1%202-1%201-3v-1c2-2%201-5-1-6l-1-1-1-1-1-2h1v-4l-2-4v-4l1-1c1-1%201-1-1-1-3%200-12%204-14%206-1%203-4%205-6%205-3%200-3-3-3-28l-2-30V0H0v74m253-61c-2%204%200%207%203%204l1-1v2l-3%202-1%201c0%202%204%203%209%203%204%200%204%200%202-1s-3-3-1-3h4c4%200%206-2%204-3v-1l-2-2-4-1-5-1h-4c0-2-2-1-3%201m35%208c-2%203-2%203%200%203l4%204%205%204%202%201c-1%201%202%204%207%205l5%203h4c0-2-9-12-11-12l-2-3c-1-3-6-6-8-5l-2-1c-2-3-2-2-4%201m76%2034h-5c-5%201-5%203%201%205%206%203%2015%202%2019-1l2-3-17-1m-37%2026c-2%203-1%206%201%208l2%203%201%201v-5l3%203%203%204c1%202%204%204%205%203l-1-2-1-2%203%201c2%202%202%202%202%200%200-3-2-5-10-12-7-4-8-5-8-2M168%2092l1%206c3%206%203%209%202%209l-4-1c-4-1-4-1-4%201%200%204%205%2012%209%2013l14%204-3-11c-3-1-11-16-11-20%200-3-3-4-4-1m22%208c-2%206%200%2018%203%2018l3%202c3%203%205%203%208%201v-3c-2%200-1-7%201-7l2%201%201%201v-11h-2l-1%204c0%203-4%204-8%202l-4-3c-1-7-2-8-3-5m-64%208l-9%204c-11%203-13%205-7%206l11-1h19c2%201%204%200%204-3%201-4-14-9-18-6m-26%2044l-21%209c-8%203-8%204-2%204l22%203h8l2-2%2014%204c3%203%205%202%2015-1%2011-5%2020-9%2019-10-2-3-30-9-30-6%200%202-11%207-14%207-2%200-3-1-3-2%200-2%202-3%209-5l5-2h-6l-10-1c-2-1-5%200-8%202m74%202l-7%204h2l5-1%205-1h3l2%202c2%200%204%202%203%204l1%201c2%201%202%200%202-1l1-2%201-4%201-4-1-1c-7-1-11-1-18%203m-78%201c-9%205-9%206-5%207%203%201%205%202%209%201l6-1c3%200%201-3-3-3-4-1-5-2-1-4%203-1%204-3%202-3l-8%203m152%2014l-2%203-2%202v1l-3%201c-1%202-3%207-1%206h2l1%201%202-2c1-3%203-4%203-2l-2%203-2%202v2h-3v-3l-1%201h-4v1c2%200%203%203%200%203v2h5l4-3c4-6%208-10%2011-10l2-1%201-3c3-4%203-5-2-5-4%200-5%200-5%202h-3l-1-1m-173%201l-6%201-5%202h-5c-4%200-11%201-17%204-4%202-1%203%208%202s10-1%208%201c-3%203-3%203%205%203s12-2%209-5%203-5%2011-4c5%200%207%200%206-1l-3-1-2-1c0-2-6-3-9-1m18%202c0%201%201%202%205%202%204%201%204%201%203%202-3%202-2%203%200%203l3%202c0%202%202%203%203%201l2-1c2%200%205-3%203-4l-18-7-1%202m31%205l-9%204c-11%203-13%205-6%205l6%202c2%202%2012-3%2011-5-1-1-1-1%203-3l3-2c0-2-6-2-8-1m33%2037c-3%200-3%200%204%207s23%2019%2035%2027l8%204%2012-5%2021-11c-1-2-4-2-4-1%200%203-5%204-8%204-4-1-15-5-16-7%200-2-9-1-9%200%201%202-5%202-8%200l-7-2c-11%200-14-2-7-5%204-2%203-3-2-4h-6l-4%202c-3-1-7-7-6-7%202-1%200-3-3-2m75%201c-3%201-5%204-3%204l4-1h2l-2%202-1%201%201%204v3l1-2c0-3%202-2%204%200s2%202%200%203l-1%203h8c0-2%203-4%204-3h2c0-1%200-2%201-1l15-6c1-2%204-3%206-4l3-1-3-1h-4c0%202-5%201-8%200-4-4-4-1%200%202l2%203c-1%202-6-1-6-3-1-2-3-3-3-1l-2%202c-2%200-2%200-1%202v2c-2%201-3%201-2-1h-1c-2%200-2%200-1-1%200-1-1-2-3-2l-4-2c0-1-5-3-8-2'%20fill='%23FFC600'%20fill-rule='evenodd'/%3e%3c/svg%3e","aspectRatio":1.3333333333333333,"src":"/static/7b225534730aef744953abfb0f591ffc/4fe8c/featured-image.jpg","srcSet":"/static/7b225534730aef744953abfb0f591ffc/e75b5/featured-image.jpg 160w,\n/static/7b225534730aef744953abfb0f591ffc/c01e2/featured-image.jpg 320w,\n/static/7b225534730aef744953abfb0f591ffc/4fe8c/featured-image.jpg 600w","srcWebp":"/static/7b225534730aef744953abfb0f591ffc/ad85c/featured-image.webp","srcSetWebp":"/static/7b225534730aef744953abfb0f591ffc/578e8/featured-image.webp 160w,\n/static/7b225534730aef744953abfb0f591ffc/8dbf3/featured-image.webp 320w,\n/static/7b225534730aef744953abfb0f591ffc/ad85c/featured-image.webp 600w","sizes":"(max-width: 600px) 100vw, 600px"}}}},"excerpt":"Photo by  Jamie Street  on  Unsplash   - \"trie\" is from \" Retrieval \" thus the cute  🐶  \"Retriever\" I've released  @cshooks/usetrie . It's…","fields":{"year":"2019","slug":"/blog/2019/03/23/cshooks-usetrie-a-react-hook-for-typeahead-autocomplete/"}}},"pageContext":{"id":"cd3cdae8-aa28-506d-a601-5053112b31ab"}},"staticQueryHashes":["398935099"]}