Uploaded image for project: 'Realm JavaScript SDK'
  1. Realm JavaScript SDK
  2. RJS-2637

Improve useQuery arguments so react-hooks/exhaustive-deps recognise missing deps

      Problem

      Currently there is no way to know if you forgot deps besides testing. We would love to use react-hooks/exhaustive-deps to recognise the missing deps in the useQuery function.

      Solution

      If we move the type argument as the last one, so example usage of useQuery:

        const results = useQuery<ImporterAuthenticationModel>(
          (objects) =>
            objects.filtered(query, ...args).sorted([
              ['importerId', false],
              ['title', false],
            ]),
          [query, args],
          ImporterAuthenticationModel.schema.name
        );
      

      Then react-hooks/exhaustive-deps correctly recognises missing deps (as it expects deps to be on second position and callback to be on the first one like in useEffect).

      Alternatives

      No alternatives really. For our code base we copy-pasted useQuery source code and modified it to suit our needs, but I think it would be really beneficial to all developers using @realm/react.

      Maybe alternative is to fork react-hooks/exhaustive-deps and make it work for realm-hooks

      How important is this improvement for you?

      Fairly niche but nice to have anyway

      Feature would mainly be used with

      Atlas Device Sync

            Assignee:
            Unassigned Unassigned
            Reporter:
            unitosyncbot Unito Sync Bot
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: