diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 36f7e57..6e8698b 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -2,17 +2,17 @@ module.exports = { root: true, env: { browser: true, es2020: true }, extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react-hooks/recommended', + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react-hooks/recommended", ], - ignorePatterns: ['dist', '.eslintrc.cjs'], - parser: '@typescript-eslint/parser', - plugins: ['react-refresh'], + ignorePatterns: ["dist", ".eslintrc.cjs"], + parser: "@typescript-eslint/parser", + plugins: ["react-refresh"], rules: { - 'react-refresh/only-export-components': [ - 'warn', + "react-refresh/only-export-components": [ + "warn", { allowConstantExport: true }, ], }, -} \ No newline at end of file +}; diff --git a/README.md b/README.md index 3f81906..5cae9f2 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Your analytics lineup features Aspect Analysis, a Word Sentiment Heatmap (for th ## Walkthrough 1) To obtain customer review insights, sync your data to Motherduck with the schema: { "review_text": "string", "stars": "number" } (More schemas will be supported soon). We recommend using Airbyte due to its extensive list of sources and seamless data movement. -2) Visit the Analysr website at (growwithanalysr.vercel.app) and click on the "Get Started Now" button. +2) Visit the Analysr website at (growwithanalysr.web.app) and click on the "Get Started Now" button. 3) Select your business stack and substack; Groq and queries will use this information to fetch insights. 4) Input your Motherduck token and wait for the connection to be established (the time required will depend on your network bandwidth). 5) Select the database and table where your customer reviews or any related reviews exist, and set the data limit. @@ -50,7 +50,7 @@ Your analytics lineup features Aspect Analysis, a Word Sentiment Heatmap (for th - **Visualization**: Recharts - **State Management**: Zustand - **Animations**: Framer Motion -- **Hosting**: Firebase (Staging), Vercel (Production) +- **Hosting**: Firebase (Production), Vercel (Experiment) - **CI/CD**: GitHub Actions for automated deployment diff --git a/eslint.config.js b/eslint.config.js index 82c2e20..0bbf074 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,26 +1,26 @@ -import js from '@eslint/js'; -import globals from 'globals'; -import reactHooks from 'eslint-plugin-react-hooks'; -import reactRefresh from 'eslint-plugin-react-refresh'; -import tseslint from 'typescript-eslint'; +import js from "@eslint/js"; +import globals from "globals"; +import reactHooks from "eslint-plugin-react-hooks"; +import reactRefresh from "eslint-plugin-react-refresh"; +import tseslint from "typescript-eslint"; export default tseslint.config( - { ignores: ['dist'] }, + { ignores: ["dist"] }, { extends: [js.configs.recommended, ...tseslint.configs.recommended], - files: ['**/*.{ts,tsx}'], + files: ["**/*.{ts,tsx}"], languageOptions: { ecmaVersion: 2020, globals: globals.browser, }, plugins: { - 'react-hooks': reactHooks, - 'react-refresh': reactRefresh, + "react-hooks": reactHooks, + "react-refresh": reactRefresh, }, rules: { ...reactHooks.configs.recommended.rules, - 'react-refresh/only-export-components': [ - 'warn', + "react-refresh/only-export-components": [ + "warn", { allowConstantExport: true }, ], }, diff --git a/firebase.json b/firebase.json index 97aa404..0a0ba89 100644 --- a/firebase.json +++ b/firebase.json @@ -1,11 +1,7 @@ { "hosting": { "public": "dist", - "ignore": [ - "firebase.json", - "**/.*", - "**/node_modules/**" - ], + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], "rewrites": [ { "source": "**", @@ -28,4 +24,4 @@ } ] } -} \ No newline at end of file +} diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..4a80ded --- /dev/null +++ b/vercel.json @@ -0,0 +1,17 @@ +{ + "headers": [ + { + "source": "**", + "headers": [ + { + "key": "Cross-Origin-Opener-Policy", + "value": "same-origin" + }, + { + "key": "Cross-Origin-Embedder-Policy", + "value": "require-corp" + } + ] + } + ] +}