Comments (3)
Ah ok. I removed the usual healthcheck and made it a simple "OK". Anyhow could have done that and kept the app up. It is the main route that doesn't work. Will report back with what I can find the issue being.
from epic-stack.
Okay now I know where the issue is. Using Algolia and trying to implement this ->
Part of component.
type MainLoaderData = {
serverState?: InstantSearchServerState;
serverUrl?: string;
}
export const loader: LoaderFunction = async ({
request,
}: {
request: Request
}) => {
const serverUrl = request.url
const serverState = await getServerState(<Search serverUrl={serverUrl} />, {
renderToString,
})
if (serverState === null) throw new Error('Server Data did not load in')
const data: MainLoaderData = {
serverUrl,
serverState,
}
return json(data)
}
export default function Index() {
const { serverState, serverUrl } = useLoaderData<MainLoaderData>()
return (
<>
<Search serverState={serverState} serverUrl={serverUrl} />;
I'm not gonna past the rest of my actual other file because it is a lot, but I'll paste below the example from the link above:
import { renderToString } from 'react-dom/server';
import algoliasearch from 'algoliasearch/lite';
import type { InstantSearchServerState } from 'react-instantsearch';
import {
InstantSearch,
InstantSearchSSRProvider,
getServerState,
} from 'react-instantsearch';
import { history } from 'instantsearch.js/cjs/lib/routers/index.js';
import { json } from '@remix-run/node';
import { useLoaderData } from '@remix-run/react';
import type { LoaderFunction } from '@remix-run/node';
const searchClient = algoliasearch('YourApplicationID', 'YourSearchOnlyAPIKey');
export const loader: LoaderFunction = async ({ request }) => {
const serverUrl = request.url;
const serverState = await getServerState(
<Search serverUrl={serverUrl} />,
{ renderToString }
);
return json({
serverState,
serverUrl,
});
};
type SearchProps = {
serverState?: InstantSearchServerState;
serverUrl?: string;
};
function Search({ serverState, serverUrl }: SearchProps) {
return (
<InstantSearchSSRProvider {...serverState}>
<InstantSearch
searchClient={searchClient}
indexName="YourIndexName"
routing={{
router: history({
getLocation() {
if (typeof window === 'undefined') {
return new URL(serverUrl!) as unknown as Location;
}
return window.location;
},
}),
}}
>
{/* Widgets */}
</InstantSearch>
</InstantSearchSSRProvider>
);
}
export default function HomePage() {
const { serverState, serverUrl } = useLoaderData() as SearchProps;
return <Search serverState={serverState} serverUrl={serverUrl} />;
}
I wonder if the issue is because import { history } from 'instantsearch.js/cjs/lib/routers/index.js';
is what is in the example and I am trying to use import { history } from 'instantsearch.js/es/lib/routers/index.js';
. I am not positive. I'll try to keep this up and put in answer if I am to find it for someone later.
But for now, just taking off the SSR stuff will get this to work
from epic-stack.
Yeah, I don't think algolia is capable of rendering on the server at all. You may need to do all algolia stuff in a *.client.tsx file and use ClientOnly from remix-utils to only include algolia in the client build.
from epic-stack.
Related Issues (20)
- Add documentation to run app locally with Docker HOT 3
- issues when scaling up machines on fly HOT 10
- Makes sense to substitute Express for Fastify? HOT 3
- Create an account button shows error but should not HOT 3
- Vitest fails after Prisma migration HOT 1
- npm test:e2e:run fails nearly all the time HOT 4
- Rate limiting can be bypassed with a spoofed ip HOT 5
- dev-server long running command does not give back shell input correctly on fish shell HOT 3
- dev-server does not restarts when it crashes HOT 3
- `npm run validate` without having to stop the dev server
- Running Playwright (or the stack) in Docker HOT 1
- No relative import paths HOT 2
- Configuration for the possibility of using postgresql
- /swapon command failing when deploying to production HOT 2
- Tests failing on a fresh install due to SyntaxErrors HOT 2
- Adding tags/releases to the repository HOT 6
- Running Vitest locally can cause errors due to missing schema updates in test database HOT 3
- SENTRY_PROJECT missing from deploy.yml HOT 3
- Conflict on seeding production db HOT 1
- Remove `@remix-run/server-runtime` as a dependency HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from epic-stack.