What is a Custom Template?
Custom templates are React Components that you can use in your theme if none of the available system pages meets your requirements. These pages are mounted at path: /c/page-name. An instance of the FDK Store Client (fpi) is available in case the component needs to display any data in the UI.
How to Create a Custom Template
It is required to create two files in .jsx format, for example, profile.jsx
and index.jsx
in /theme/custom-templates. Then import the profile component inside index.jsx file.
This router method is only supported by a custom template.
Example 1
For the file named as index.jsx
:
import React from "react";
import { Route, Outlet } from "react-router-dom";
import Cart from "./cart";
import Profile from "./profile";
export default [
<Route path="profile" element={<Profile />} />
<Route path="cart" element={<Cart />} />,
];
For the file named as profile.jsx
:
import React from 'react';
import { useParams } from 'react-router-dom';
function Profile(props) {
const { fpi } = props
const parms = useParams()
return (
<div>
<h1 style={{ color: 'red' }}>This is a custom page for Profile in flow</h1>
<hr />
</div>
);
}
Profile.serverFetch = ({ router }) => {
};
export default Profile;
Example 2
This is an example in the nested format.
For the file named as index.jsx
:
import React from "react";
import { Route, Outlet } from "react-router-dom";
import Cart from "./cart";
import Profile from "./profile";
export default [
<Route path="cart" element={<Cart />} />,
<Route path="user" element={<Outlet />}>
<Route path="profile" element={<Profile />} />
</Route>,
];
For more details follow: React Router V6.4
When you serve the site locally, you can view this page at http://localdev.fynd.com:5000/c/profile. The profile part in the route comes from the key in the default exported object.