@@ -3,6 +3,7 @@ import { NextFC } from "next";
3
3
4
4
import NotFoundPage from "components/NotFoundPage" ;
5
5
import PackageSassDoc from "components/PackageSassDoc" ;
6
+ import { useHotReload } from "hooks/useHotReload" ;
6
7
import { qsToString } from "utils/routes" ;
7
8
import { PackageSassDoc as FoundSassDoc } from "utils/sassdoc" ;
8
9
@@ -11,7 +12,13 @@ interface SassDocProps {
11
12
sassdoc : FoundSassDoc | null ;
12
13
}
13
14
14
- const SassDoc : NextFC < SassDocProps > = ( { name, sassdoc } ) => {
15
+ const getSassdoc = ( name : string ) : Promise < FoundSassDoc | null > =>
16
+ import ( `../../../constants/sassdoc/${ name } ` )
17
+ . then ( ( mod ) => mod . default )
18
+ . catch ( ( ) => null ) ;
19
+
20
+ const SassDoc : NextFC < SassDocProps > = ( { name, sassdoc : propSassdoc } ) => {
21
+ const sassdoc = useHotReload ( name , propSassdoc , getSassdoc ) ;
15
22
if ( ! sassdoc ) {
16
23
if ( process . env . NODE_ENV !== "production" ) {
17
24
throw new Error (
@@ -27,9 +34,7 @@ const SassDoc: NextFC<SassDocProps> = ({ name, sassdoc }) => {
27
34
28
35
SassDoc . getInitialProps = async ( { query } ) : Promise < SassDocProps > => {
29
36
const name = qsToString ( query . id ) ;
30
- const sassdoc = await import ( `../../../constants/sassdoc/${ name } ` )
31
- . then ( ( mod ) => mod . default )
32
- . catch ( ( ) => null ) ;
37
+ const sassdoc = await getSassdoc ( name ) ;
33
38
34
39
return { name, sassdoc } ;
35
40
} ;
0 commit comments