- 
                Notifications
    You must be signed in to change notification settings 
- Fork 1.3k
Description
Bug report
Description / Observed Behavior
As the title says, I have a useSharedState hook that is used to pass state between components without prop drilling. This hook is not for http resources, it doesnt have a url fetcher but has an initial state option
import useSWR from 'swr'
export const useSharedState = (key, initial) => {
  const { data: state, mutate: setState } = useSWR(key, null, {
    fallbackData: initial,
  })
  return [state, setState]
}
I also have SWR global config in my App.js with its own fetcher
import useSWR, { SWRConfig } from 'swr'
const App = () => {
    return (
        <React.Fragment>
            <SWRConfig
                value={{
                    fetcher: (resource, init) => fetch(`${process.env.REACT_APP_BASE_URL}/api` + resource, init).then(res => res.json())
                }}
            >
                <BrowserRouter basename={process.env.PUBLIC_URL}>
                    <Routes>
                    ...
When I make an useSWR call it adds the base url to query endpoints in components
However when I have useSWR and  useSharedState in the same component or when I call useSharedState directly, it goes to the wrong fetcher & url endpoint defined thats in SWRConfig
import useSWR from 'swr'
import { useSharedState } from "../../hooks/useSharedState"
...
function Books() {
    
    useEffect(() => {
        document.documentElement.className = "inset";
        document.body.className = "inset-body"; 
    }, [])
    const {data : recentlyAddedBooks } = useSWR('/books/recently_added');
    const [searchInput, setSearchInput] = useSharedState('searchInput') // used for getting text from a searchbox
    
    return (...)
it returns
`GET http://localhost:5000/apisearchInput 404 (Not Found)` because its not a resource url
Expected Behavior
Need all SWR calls with resource urls i.e. useSWR('/books') to follow the global fetcher in <SWRConfig/> but other SWR wrappers like useSharedState() that is not meant for API calls should not use global fetcher option
What am I doing wrong, do I need to fix the hook param to override fetcher?
Repro Steps / Code Example
Additional Context
swr version "^1.3.0",