From 64803f8ac2af217840c85d9e275b92b1252a8062 Mon Sep 17 00:00:00 2001 From: "maxime.batista" Date: Wed, 1 Nov 2023 15:08:50 +0100 Subject: [PATCH] simplify react view displaying from php, bring back auto/fast refresh --- .../render-react-php-file-processed.png | Bin 46147 -> 49673 bytes Documentation/how-to-dev.md | 85 +++--------------- config.php | 3 + front/ViewRenderer.tsx | 19 ++++ front/views/DisplayResults.tsx | 14 +-- front/views/SampleForm.tsx | 14 +-- profiles/dev-config-profile.php | 8 +- profiles/prod-config-profile.php | 3 + src/react-display-file.php | 23 +++-- 9 files changed, 65 insertions(+), 104 deletions(-) create mode 100644 front/ViewRenderer.tsx diff --git a/Documentation/assets/render-react-php-file-processed.png b/Documentation/assets/render-react-php-file-processed.png index 3b0c1ebf7e2f1b082854fcca869d80c24b7b17c0..fe7158d5e5b908b35367f463527b5389bb111a10 100644 GIT binary patch literal 49673 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 L)a8p2=7IkQG^Hdg literal 46147 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 block in the `` section. -The script block imports the requested view and will render it using a specific `render(any)` function. -This function __must__ figure in the imported view file in order to work. +The script block imports the requested view and will render it. +The view entry is a function, named in PascalCase, which __must__ be be exported by default (`export default function MyReactView(args: {..})`). ```html ``` @@ -84,11 +83,8 @@ here's how it renders if you do a request to `http://localhost:8080/`. ![](assets/render-react-php-file-processed.png) The index.php's router says that for a `GET` on the `/` url, we call the `SampleFormController#displayForm` method. This method then uses the `send_react_front`, to render the `views/SampleForm.tsx` react element, with no arguments (an empty array). -You can see that the react view is rendered using a `render` function. -This function **must figure in the view's file, and be exported**. -We'll talk about an important coding convention with react views that this script block requires later. +The view file **must export by default its react function component**. -But now let's talk about our server profiles ! ## Server Profiles If you go on the staging server, you'll see that, for the exact same request equivalent, the generated `src/render-display-file` file changes : ![](assets/staging-server-render-react-php-file-processed.png) @@ -107,11 +103,15 @@ the file is replaced with `prod-config-file.php` by the CI when deploying to the The two profiles declares an `_asset(string $uri)` function, used by the `/config.php::asset` method, but with different implementations : ### Development profile ```php -const FRONT_URL_CONSTANT = "http://localhost:5173"; +$hostname = getHostName(); +$front_url = "http://$hostname:5173"; function _asset(string $assetURI): string { - return FRONT_URL_CONSTANT . "/" . $assetURI; + global $front_url; + return $front_url . "/" . $assetURI; } + + ``` The simplest profile, simply redirect all assets to the development server @@ -148,60 +148,3 @@ __any react view file__ should __export__ a function with signature `render(argu The `arguments` parameter is used to pass data to the react component. If you take a look at the `front/views/SampleForm.tsx` view, here's the definition of its render function : - -```ts -/// Here's the definition of the view -function SampleForm() { - ... react jsx code here -} - -// the `SampleForm` does not inputs arguments but the parameter IS STILL REQUIRED -export function render(args: any) { - const root = ReactDOM.createRoot( - document.getElementById('root') as HTMLElement - ); - root.render( - - //here's our view component - - ); -} -``` - -## Pass arguments to our react views -We'll take the example of the view in charge of displaying the SimpleForm's fields values. -First, let's take a look at its React Component definition : - -```ts -function DisplayResults({password, username}: any) { - return ( -
-

username: {username}

//arguments are used heres -

password: {password}

-
- ) -} -``` - -The components takes two arguments, an `username` and a `password` string. - -Now, let's take a look at its `render` function : -```ts -export function render(args: any) { - const root = ReactDOM.createRoot( - document.getElementById('root') as HTMLElement - ); - root.render( - - - - ); -} -``` -especially this line: -``` - -``` -`DisplayResults` is the name of our React Component (the function). -To pass arguments to the `DisplayResults` function, we use the syntax `={value}`. (somewhat like regular html/xml components). -Use the render's function `args` parameter to access to the php's array values. diff --git a/config.php b/config.php index b2241d8..11e7c2c 100644 --- a/config.php +++ b/config.php @@ -5,6 +5,8 @@ // Please do not touch. require /*PROFILE_FILE*/ "profiles/dev-config-profile.php"; +CONST SUPPORTS_FAST_REFRESH = _SUPPORTS_FAST_REFRESH; + /** * Maps the given relative source uri (relative to the `/front` folder) to its actual location depending on imported profile. * @param string $assetURI relative uri path from `/front` folder @@ -14,3 +16,4 @@ function asset(string $assetURI): string { return _asset($assetURI); } + diff --git a/front/ViewRenderer.tsx b/front/ViewRenderer.tsx new file mode 100644 index 0000000..ffaf886 --- /dev/null +++ b/front/ViewRenderer.tsx @@ -0,0 +1,19 @@ +import ReactDOM from "react-dom/client"; +import React, {FunctionComponent} from "react"; + +/** + * Dynamically renders a React component, with given arguments + * @param Component the react component to render + * @param args the arguments to pass to the react component. + */ +export function renderView(Component: FunctionComponent, args: {}) { + const root = ReactDOM.createRoot( + document.getElementById('root') as HTMLElement + ); + + root.render( + + + + ); +} \ No newline at end of file diff --git a/front/views/DisplayResults.tsx b/front/views/DisplayResults.tsx index 355466c..faf5e28 100644 --- a/front/views/DisplayResults.tsx +++ b/front/views/DisplayResults.tsx @@ -2,7 +2,7 @@ import ReactDOM from "react-dom/client"; import React from "react"; -function DisplayResults({password, username}: any) { +export default function DisplayResults({password, username}: any) { return (

username: {username}

@@ -10,15 +10,3 @@ function DisplayResults({password, username}: any) {
) } - - -export function render(args: any) { - const root = ReactDOM.createRoot( - document.getElementById('root') as HTMLElement - ); - root.render( - - - - ); -} \ No newline at end of file diff --git a/front/views/SampleForm.tsx b/front/views/SampleForm.tsx index b64650a..5108697 100644 --- a/front/views/SampleForm.tsx +++ b/front/views/SampleForm.tsx @@ -1,13 +1,13 @@ import React from "react"; import ReactDOM from "react-dom/client"; -function SampleForm() { +export default function SampleForm() { return (

Hello, this is a sample form made in react !

- + @@ -16,15 +16,5 @@ function SampleForm() { ) } -export function render(args: any) { - const root = ReactDOM.createRoot( - document.getElementById('root') as HTMLElement - ); - root.render( - - - - ); -} diff --git a/profiles/dev-config-profile.php b/profiles/dev-config-profile.php index 9d9772e..3ce4986 100644 --- a/profiles/dev-config-profile.php +++ b/profiles/dev-config-profile.php @@ -1,8 +1,12 @@ @@ -16,14 +28,13 @@