diff --git a/start-client/src/components/Application.js b/start-client/src/components/Application.js index 7862e98fda..9a240ca4a2 100644 --- a/start-client/src/components/Application.js +++ b/start-client/src/components/Application.js @@ -64,6 +64,20 @@ export default function Application() { } }, [dispatch, dispatchInitializr, windowsUtils.origin]) + const onEscape = () => { + setBlob(null) + dispatch({ + type: 'UPDATE', + payload: { + list: false, + share: false, + explore: false, + nav: false, + history: false, + }, + }) + } + const onSubmit = async () => { if (generating || list) { return @@ -74,8 +88,10 @@ export default function Application() { url, values, get(dependencies, 'list') - ).catch(() => { - toast.error(`Could not connect to server. Please check your network.`) + ).catch(err => { + toast.error( + err || `Could not connect to server. Please check your network.` + ) }) setGenerating(false) if (project) { @@ -91,8 +107,11 @@ export default function Application() { url, values, get(dependencies, 'list') - ).catch(() => { - toast.error(`Could not connect to server. Please check your network.`) + ).catch(err => { + toast.error( + err || `Could not connect to server. Please check your network.` + ) + onEscape() }) setBlob(project) } @@ -101,20 +120,6 @@ export default function Application() { dispatch({ type: 'UPDATE', payload: { share: true } }) } - const onEscape = () => { - setBlob(null) - dispatch({ - type: 'UPDATE', - payload: { - list: false, - share: false, - explore: false, - nav: false, - history: false, - }, - }) - } - return ( <> diff --git a/start-client/src/components/utils/ApiUtils.js b/start-client/src/components/utils/ApiUtils.js index 15cdbb8f50..f12bb094f9 100644 --- a/start-client/src/components/utils/ApiUtils.js +++ b/start-client/src/components/utils/ApiUtils.js @@ -153,7 +153,7 @@ export const parseParams = (values, queryParams, lists) => { const depsWarning = [] const newVal = value .split(',') - .filter(item => !!item) + .filter(item => !!item) .map(item => { const dep = get(lists, 'dependencies').find( d => d.id === item.trim() @@ -301,7 +301,13 @@ export const getProject = function getProject(url, values, config) { resolve(response.blob()) return } - reject() + try { + response.json().then(res => { + reject(res?.message || '') + }) + } catch (e) { + reject() + } }, () => { reject() diff --git a/start-client/webpack.dev.js b/start-client/webpack.dev.js index 06d594311d..e58aad3a7b 100644 --- a/start-client/webpack.dev.js +++ b/start-client/webpack.dev.js @@ -25,6 +25,15 @@ const config = { }, 800) }) devServer.app.get('/starter.zip', function (req, res) { + // 500 errors + // res.status(500).json({ + // timestamp: '2022-09-05T14:39:37.471+00:00', + // status: 500, + // error: 'Internal Server Error', + // message: + // 'Malformed input or input contains unmappable characters: MixérApplication.java', + // path: '/starter.zip', + // }) fs.readFile(path.resolve('./dev/starter.mock.zip'), (err, data) => { if (err) return sendError(err, res) setTimeout(() => {