{
	"Recoil Atom": {
		"prefix": "sq-atom",
		"body": [
      "import { atom } from 'recoil';",
      "",
      "export const ${1:CollectionId}Atom = atom({",
      "  key: '${1:CollectionId}Atom',",
      "  default: 1",
      "});"
    ],
    "description": "Creates a new atom",
    "scope": "typescript"
  },
	"Recoil Selector (sync)": {
		"prefix": "sq-selector-sync",
		"body": [
      "import { selector } from 'recoil';",
      "",
      "export const ${1:CollectionData}Selector = selector({",
      "  key: '${1:CollectionData}Selector',",
      "  get: ({get}) => {",
      "    return get(${1:CollectionData}Atom);",
      "  }",
      "});"
    ],
    "description": "Creates a new synchronous selector",
    "scope": "typescript"
  },
	"Recoil Selector (async)": {
		"prefix": "sq-selector-async",
		"body": [
      "import { selector } from 'recoil';",
      "",
      "export const ${1:CollectionData}Selector = selector({",
      "  key: '${1:CollectionData}Selector',",
      "  get: async ({get}) => {",
      "    return await dataFetch(get(${2:CollectionIdState}));",
      "  }",
      "});"
    ],
    "description": "Creates a new asynchronous selector",
    "scope": "typescript"
  },
	"Recoil selectorFamily": {
		"prefix": "sq-selector-fam",
		"body": [
      "import { selectorFamily } from 'recoil';",
      "",
      "export const ${1:CollectionData}Selector = selectorFamily({",
      "  key: '${1:CollectionData}Selector',",
      "  get: id => async () => {",
      "    return await dataFetch({id});",
      "  }",
      "});"
    ],
    "description": "Creates a selectorFamily (same as selector, but used to provide parameters)",
    "scope": "typescript"
  },
  "useTranslation": {
    "prefix": ["sq-translation", "useTranslation"],
    "body": "const { t: strings } = useTranslation();",
    "description": "Include the translations",
    "scope": "typescriptreact"
  }
}