diff --git a/demo/.eslintrc.cjs b/docs/.eslintrc.cjs
similarity index 100%
rename from demo/.eslintrc.cjs
rename to docs/.eslintrc.cjs
diff --git a/demo/.gitignore b/docs/.gitignore
similarity index 100%
rename from demo/.gitignore
rename to docs/.gitignore
diff --git a/demo/README.md b/docs/README.md
similarity index 100%
rename from demo/README.md
rename to docs/README.md
diff --git a/demo/index.html b/docs/index.html
similarity index 100%
rename from demo/index.html
rename to docs/index.html
diff --git a/demo/package.json b/docs/package.json
similarity index 93%
rename from demo/package.json
rename to docs/package.json
index 82f0b51..24aa55c 100644
--- a/demo/package.json
+++ b/docs/package.json
@@ -3,6 +3,7 @@
"private": true,
"version": "0.0.0",
"type": "module",
+ "homepage": "https://devansar.github.io/react-search-hook",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
diff --git a/demo/postcss.config.js b/docs/postcss.config.js
similarity index 100%
rename from demo/postcss.config.js
rename to docs/postcss.config.js
diff --git a/demo/public/vite.svg b/docs/public/vite.svg
similarity index 100%
rename from demo/public/vite.svg
rename to docs/public/vite.svg
diff --git a/demo/src/App.tsx b/docs/src/App.tsx
similarity index 100%
rename from demo/src/App.tsx
rename to docs/src/App.tsx
diff --git a/demo/src/assets/react.svg b/docs/src/assets/react.svg
similarity index 100%
rename from demo/src/assets/react.svg
rename to docs/src/assets/react.svg
diff --git a/demo/src/components/Heade.tsx b/docs/src/components/Heade.tsx
similarity index 100%
rename from demo/src/components/Heade.tsx
rename to docs/src/components/Heade.tsx
diff --git a/demo/src/index.css b/docs/src/index.css
similarity index 100%
rename from demo/src/index.css
rename to docs/src/index.css
diff --git a/demo/src/main.tsx b/docs/src/main.tsx
similarity index 100%
rename from demo/src/main.tsx
rename to docs/src/main.tsx
diff --git a/demo/src/vite-env.d.ts b/docs/src/vite-env.d.ts
similarity index 100%
rename from demo/src/vite-env.d.ts
rename to docs/src/vite-env.d.ts
diff --git a/demo/tailwind.config.js b/docs/tailwind.config.js
similarity index 100%
rename from demo/tailwind.config.js
rename to docs/tailwind.config.js
diff --git a/demo/tsconfig.json b/docs/tsconfig.json
similarity index 100%
rename from demo/tsconfig.json
rename to docs/tsconfig.json
diff --git a/demo/tsconfig.node.json b/docs/tsconfig.node.json
similarity index 100%
rename from demo/tsconfig.node.json
rename to docs/tsconfig.node.json
diff --git a/demo/vite.config.ts b/docs/vite.config.ts
similarity index 100%
rename from demo/vite.config.ts
rename to docs/vite.config.ts
diff --git a/demo/yarn.lock b/docs/yarn.lock
similarity index 100%
rename from demo/yarn.lock
rename to docs/yarn.lock
diff --git a/src/__tests__/hook/useSearch.test.tsx b/src/__tests__/hook/useSearch.test.tsx
index 3ad1f88..5974c59 100644
--- a/src/__tests__/hook/useSearch.test.tsx
+++ b/src/__tests__/hook/useSearch.test.tsx
@@ -5,6 +5,7 @@ import SearchProvider from '../../SearchProvider'
import SearchContext from '../../SearchContext'
import { act } from 'react-dom/test-utils'
import { SearchContextType, UseSearchOptions } from '../../types'
+import { invalidStoreNameError } from '../../utils/errors'
describe('useSearch', () => {
it('should thrown an error if the SearchContext is not available', () => {
@@ -20,7 +21,7 @@ describe('useSearch', () => {
{children}
)
- expect(() => renderHook(() => useSearch('product'), { wrapper })).toThrow(Error(`Invalid store name: product`))
+ expect(() => renderHook(() => useSearch('product'), { wrapper })).toThrow(invalidStoreNameError('product'))
})
it('should get search value from context with useSearch successfully', () => {
diff --git a/src/hooks/useSearch.ts b/src/hooks/useSearch.ts
index 4170f37..f0905cc 100644
--- a/src/hooks/useSearch.ts
+++ b/src/hooks/useSearch.ts
@@ -22,6 +22,7 @@ import * as React from 'react'
import SearchContext from '../SearchContext'
import { getfilterItems } from '../utils/filter'
import { UseSearchOptions, UseSearchResponse } from '../types'
+import { invalidStoreNameError } from '../utils/errors'
/**
* @function
@@ -43,11 +44,7 @@ const useSearch = (
// Check if the provided store is allowed
if (context.stores && context.stores[storeName] === undefined) {
- throw new Error(`
- Invalid store name: ${storeName}
- Make sure you have defined the ${storeName} store for the SearchProvider
- For more information, please refer to: https://github.com/DevAnsar/react-search-hook?tab=readme-ov-file#2-add-provider-to-top-of-your-component-tree
- `)
+ throw invalidStoreNameError(storeName)
}
/**
diff --git a/src/utils/errors.ts b/src/utils/errors.ts
new file mode 100644
index 0000000..59db1d1
--- /dev/null
+++ b/src/utils/errors.ts
@@ -0,0 +1,6 @@
+export const invalidStoreNameError = (storeName: string) =>
+ Error(`
+ Invalid store name: ${storeName}
+ Make sure you have defined the ${storeName} store for the SearchProvider
+ For more information, please refer to: https://github.com/DevAnsar/react-search-hook?tab=readme-ov-file#2-add-provider-to-top-of-your-component-tree
+ `)