Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
frontend
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
vicotor
frontend
Commits
d6f48481
Commit
d6f48481
authored
Oct 03, 2022
by
tom
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pass url parts at run time
parent
59a4ab45
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
26 additions
and
26 deletions
+26
-26
.env.template
.env.template
+3
-0
config.ts
configs/app/config.ts
+11
-3
getCspPolicy.ts
lib/csp/getCspPolicy.ts
+3
-5
link.ts
lib/link/link.ts
+1
-1
parseNetworkConfig.js
lib/networks/parseNetworkConfig.js
+0
-12
getStaticPaths.ts
lib/next/account/getStaticPaths.ts
+1
-1
getStaticPaths.ts
lib/next/apps/getStaticPaths.ts
+1
-1
getStaticPaths.ts
lib/next/block/getStaticPaths.ts
+1
-1
getStaticPaths.ts
lib/next/getStaticPaths.ts
+1
-1
getStaticPaths.ts
lib/next/tx/getStaticPaths.ts
+1
-1
apps.tsx
pages/[network_type]/[network_sub_type]/apps.tsx
+3
-0
No files found.
.env.template
View file @
d6f48481
...
@@ -16,3 +16,6 @@ NEXT_PUBLIC_NETWORK_CURRENCY=APP_NEXT_NEXT_PUBLIC_NETWORK_CURRENCY
...
@@ -16,3 +16,6 @@ NEXT_PUBLIC_NETWORK_CURRENCY=APP_NEXT_NEXT_PUBLIC_NETWORK_CURRENCY
NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS=APP_NEXT_NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS
NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS=APP_NEXT_NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED=APP_NEXT_NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED=APP_NEXT_NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED
NEXT_PUBLIC_FEATURED_NETWORKS=APP_NEXT_NEXT_PUBLIC_FEATURED_NETWORKS
NEXT_PUBLIC_FEATURED_NETWORKS=APP_NEXT_NEXT_PUBLIC_FEATURED_NETWORKS
NEXT_PUBLIC_APP_PROTOCOL=APP_NEXT_NEXT_PUBLIC_APP_PROTOCOL
NEXT_PUBLIC_APP_HOST=APP_NEXT_NEXT_PUBLIC_APP_HOST
NEXT_PUBLIC_APP_PORT=APP_NEXT_NEXT_PUBLIC_APP_PORT
configs/app/config.ts
View file @
d6f48481
...
@@ -9,15 +9,23 @@ const config = Object.freeze({
...
@@ -9,15 +9,23 @@ const config = Object.freeze({
subtype
:
process
.
env
.
NEXT_PUBLIC_NETWORK_SUBTYPE
,
subtype
:
process
.
env
.
NEXT_PUBLIC_NETWORK_SUBTYPE
,
logo
:
process
.
env
.
NEXT_PUBLIC_NETWORK_LOGO
,
logo
:
process
.
env
.
NEXT_PUBLIC_NETWORK_LOGO
,
name
:
process
.
env
.
NEXT_PUBLIC_NETWORK_NAME
,
name
:
process
.
env
.
NEXT_PUBLIC_NETWORK_NAME
,
id
:
process
.
env
.
NEXT_PUBLIC_NETWORK_ID
,
shortName
:
process
.
env
.
NEXT_PUBLIC_NETWORK_SHORT_NAME
,
shortName
:
process
.
env
.
NEXT_PUBLIC_NETWORK_SHORT_NAME
,
currency
:
process
.
env
.
NEXT_PUBLIC_NETWORK_CURRENCY
,
currency
:
process
.
env
.
NEXT_PUBLIC_NETWORK_CURRENCY
,
assetsPathname
:
process
.
env
.
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME
,
assetsPathname
:
process
.
env
.
NEXT_PUBLIC_NETWORK_ASSETS_PATHNAME
,
nativeTokenAddress
:
process
.
env
.
NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS
,
nativeTokenAddress
:
process
.
env
.
NEXT_PUBLIC_NETWORK_TOKEN_ADDRESS
,
basePath
:
'
/
'
+
[
process
.
env
.
NEXT_PUBLIC_NETWORK_TYPE
,
process
.
env
.
NEXT_PUBLIC_NETWORK_SUBTYPE
].
filter
(
Boolean
).
join
(
'
/
'
),
basePath
:
'
/
'
+
[
process
.
env
.
NEXT_PUBLIC_NETWORK_TYPE
,
process
.
env
.
NEXT_PUBLIC_NETWORK_SUBTYPE
].
filter
(
Boolean
).
join
(
'
/
'
),
},
},
isAccountSupported
:
process
.
env
.
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED
===
'
true
'
,
isAccountSupported
:
process
.
env
.
NEXT_PUBLIC_IS_ACCOUNT_SUPPORTED
?.
replaceAll
(
'
\'
'
,
'
"
'
)
===
'
true
'
,
// TODO domain should be passed in CI during runtime
protocol
:
process
.
env
.
NEXT_PUBLIC_APP_PROTOCOL
,
domain
:
isDev
?
'
http://localhost:3000
'
:
'
https://blockscout.com
'
,
host
:
process
.
env
.
NEXT_PUBLIC_APP_HOST
,
port
:
process
.
env
.
NEXT_PUBLIC_APP_PORT
,
baseUrl
:
[
process
.
env
.
NEXT_PUBLIC_APP_PROTOCOL
||
'
https
'
,
'
://
'
,
process
.
env
.
NEXT_PUBLIC_APP_HOST
,
process
.
env
.
NEXT_PUBLIC_APP_PORT
?
'
:
'
+
process
.
env
.
NEXT_PUBLIC_APP_PORT
:
''
,
].
join
(
''
),
});
});
export
default
config
;
export
default
config
;
lib/csp/getCspPolicy.ts
View file @
d6f48481
...
@@ -13,9 +13,7 @@ const KEY_WORDS = {
...
@@ -13,9 +13,7 @@ const KEY_WORDS = {
UNSAFE_EVAL
:
'
\'
unsafe-eval
\'
'
,
UNSAFE_EVAL
:
'
\'
unsafe-eval
\'
'
,
};
};
const
MAIN_DOMAINS
=
[
'
*.blockscout.com
'
,
'
blockscout.com
'
];
const
MAIN_DOMAINS
=
[
`*.
${
appConfig
.
host
}
`
,
appConfig
.
host
];
const
isDev
=
process
.
env
.
NODE_ENV
===
'
development
'
;
function
getNetworksExternalAssets
()
{
function
getNetworksExternalAssets
()
{
const
icons
=
featuredNetworks
const
icons
=
featuredNetworks
...
@@ -39,7 +37,7 @@ function makePolicyMap() {
...
@@ -39,7 +37,7 @@ function makePolicyMap() {
KEY_WORDS
.
SELF
,
KEY_WORDS
.
SELF
,
// webpack hmr in safari doesn't recognize localhost as 'self' for some reason
// webpack hmr in safari doesn't recognize localhost as 'self' for some reason
isDev
?
'
ws://localhost:3000/_next/webpack-hmr
'
:
''
,
appConfig
.
isDev
?
'
ws://localhost:3000/_next/webpack-hmr
'
:
''
,
// client error monitoring
// client error monitoring
'
sentry.io
'
,
'
*.sentry.io
'
,
'
sentry.io
'
,
'
*.sentry.io
'
,
...
@@ -50,7 +48,7 @@ function makePolicyMap() {
...
@@ -50,7 +48,7 @@ function makePolicyMap() {
// next.js generates and rebuilds source maps in dev using eval()
// next.js generates and rebuilds source maps in dev using eval()
// https://github.com/vercel/next.js/issues/14221#issuecomment-657258278
// https://github.com/vercel/next.js/issues/14221#issuecomment-657258278
isDev
?
KEY_WORDS
.
UNSAFE_EVAL
:
''
,
appConfig
.
isDev
?
KEY_WORDS
.
UNSAFE_EVAL
:
''
,
...
MAIN_DOMAINS
,
...
MAIN_DOMAINS
,
...
...
lib/link/link.ts
View file @
d6f48481
...
@@ -30,7 +30,7 @@ export function link(routeName: RouteName, urlParams?: Record<string, Array<stri
...
@@ -30,7 +30,7 @@ export function link(routeName: RouteName, urlParams?: Record<string, Array<stri
return
paramValue
?
`/
${
paramValue
}
`
:
''
;
return
paramValue
?
`/
${
paramValue
}
`
:
''
;
});
});
const
url
=
new
URL
(
path
,
appConfig
.
domain
);
const
url
=
new
URL
(
path
,
appConfig
.
baseUrl
);
queryParams
&&
Object
.
entries
(
queryParams
).
forEach
(([
key
,
value
])
=>
{
queryParams
&&
Object
.
entries
(
queryParams
).
forEach
(([
key
,
value
])
=>
{
url
.
searchParams
.
append
(
key
,
value
);
url
.
searchParams
.
append
(
key
,
value
);
...
...
lib/networks/parseNetworkConfig.js
deleted
100644 → 0
View file @
59a4ab45
const
featuredNetworks
=
process
.
env
.
NEXT_PUBLIC_FEATURED_NETWORKS
?.
replaceAll
(
'
\'
'
,
'
"
'
);
// should be CommonJS module since it used for next.config.js
function
parseNetworkConfig
()
{
try
{
return
JSON
.
parse
(
featuredNetworks
||
'
[]
'
);
}
catch
(
error
)
{
return
[];
}
}
module
.
exports
=
parseNetworkConfig
;
lib/next/account/getStaticPaths.ts
View file @
d6f48481
import
type
{
GetStaticPaths
}
from
'
next
'
;
import
type
{
GetStaticPaths
}
from
'
next
'
;
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
return
{
paths
:
[],
fallback
:
true
};
return
{
paths
:
[],
fallback
:
'
blocking
'
};
};
};
lib/next/apps/getStaticPaths.ts
View file @
d6f48481
import
type
{
GetStaticPaths
}
from
'
next
'
;
import
type
{
GetStaticPaths
}
from
'
next
'
;
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
return
{
paths
:
[],
fallback
:
true
};
return
{
paths
:
[],
fallback
:
'
blocking
'
};
};
};
lib/next/block/getStaticPaths.ts
View file @
d6f48481
import
type
{
GetStaticPaths
}
from
'
next
'
;
import
type
{
GetStaticPaths
}
from
'
next
'
;
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
return
{
paths
:
[],
fallback
:
true
};
return
{
paths
:
[],
fallback
:
'
blocking
'
};
};
};
lib/next/getStaticPaths.ts
View file @
d6f48481
import
type
{
GetStaticPaths
}
from
'
next
'
;
import
type
{
GetStaticPaths
}
from
'
next
'
;
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
return
{
paths
:
[],
fallback
:
true
};
return
{
paths
:
[],
fallback
:
'
blocking
'
};
};
};
lib/next/tx/getStaticPaths.ts
View file @
d6f48481
import
type
{
GetStaticPaths
}
from
'
next
'
;
import
type
{
GetStaticPaths
}
from
'
next
'
;
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
export
const
getStaticPaths
:
GetStaticPaths
=
async
()
=>
{
return
{
paths
:
[],
fallback
:
true
};
return
{
paths
:
[],
fallback
:
'
blocking
'
};
};
};
pages/[network_type]/[network_sub_type]/apps.tsx
View file @
d6f48481
...
@@ -17,3 +17,6 @@ const AppsPage = () => {
...
@@ -17,3 +17,6 @@ const AppsPage = () => {
};
};
export
default
AppsPage
;
export
default
AppsPage
;
export
{
getStaticPaths
}
from
'
lib/next/getStaticPaths
'
;
export
{
getStaticProps
}
from
'
lib/next/getStaticProps
'
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment