@@ -1064,22 +1064,20 @@ export default class View {
10641064 }
10651065 this . log ( "error" , ( ) => [ "unable to join" , resp ] ) ;
10661066 if ( this . isMain ( ) ) {
1067- this . displayError ( [
1068- PHX_LOADING_CLASS ,
1069- PHX_ERROR_CLASS ,
1070- PHX_SERVER_ERROR_CLASS ,
1071- ] ) ;
1067+ this . displayError (
1068+ [ PHX_LOADING_CLASS , PHX_ERROR_CLASS , PHX_SERVER_ERROR_CLASS ] ,
1069+ { unstructuredError : resp , errorKind : "server" } ,
1070+ ) ;
10721071 if ( this . liveSocket . isConnected ( ) ) {
10731072 this . liveSocket . reloadWithJitter ( this ) ;
10741073 }
10751074 } else {
10761075 if ( this . joinAttempts >= MAX_CHILD_JOIN_ATTEMPTS ) {
10771076 // put the root review into permanent error state, but don't destroy it as it can remain active
1078- this . root . displayError ( [
1079- PHX_LOADING_CLASS ,
1080- PHX_ERROR_CLASS ,
1081- PHX_SERVER_ERROR_CLASS ,
1082- ] ) ;
1077+ this . root . displayError (
1078+ [ PHX_LOADING_CLASS , PHX_ERROR_CLASS , PHX_SERVER_ERROR_CLASS ] ,
1079+ { unstructuredError : resp , errorKind : "server" } ,
1080+ ) ;
10831081 this . log ( "error" , ( ) => [
10841082 `giving up trying to mount after ${ MAX_CHILD_JOIN_ATTEMPTS } tries` ,
10851083 resp ,
@@ -1089,11 +1087,10 @@ export default class View {
10891087 const trueChildEl = DOM . byId ( this . el . id ) ;
10901088 if ( trueChildEl ) {
10911089 DOM . mergeAttrs ( trueChildEl , this . el ) ;
1092- this . displayError ( [
1093- PHX_LOADING_CLASS ,
1094- PHX_ERROR_CLASS ,
1095- PHX_SERVER_ERROR_CLASS ,
1096- ] ) ;
1090+ this . displayError (
1091+ [ PHX_LOADING_CLASS , PHX_ERROR_CLASS , PHX_SERVER_ERROR_CLASS ] ,
1092+ { unstructuredError : resp , errorKind : "server" } ,
1093+ ) ;
10971094 this . el = trueChildEl ;
10981095 } else {
10991096 this . destroy ( ) ;
@@ -1126,25 +1123,23 @@ export default class View {
11261123 }
11271124 if ( ! this . liveSocket . isUnloaded ( ) ) {
11281125 if ( this . liveSocket . isConnected ( ) ) {
1129- this . displayError ( [
1130- PHX_LOADING_CLASS ,
1131- PHX_ERROR_CLASS ,
1132- PHX_SERVER_ERROR_CLASS ,
1133- ] ) ;
1126+ this . displayError (
1127+ [ PHX_LOADING_CLASS , PHX_ERROR_CLASS , PHX_SERVER_ERROR_CLASS ] ,
1128+ { unstructuredError : reason , errorKind : "server" } ,
1129+ ) ;
11341130 } else {
1135- this . displayError ( [
1136- PHX_LOADING_CLASS ,
1137- PHX_ERROR_CLASS ,
1138- PHX_CLIENT_ERROR_CLASS ,
1139- ] ) ;
1131+ this . displayError (
1132+ [ PHX_LOADING_CLASS , PHX_ERROR_CLASS , PHX_CLIENT_ERROR_CLASS ] ,
1133+ { unstructuredError : reason , errorKind : "client" } ,
1134+ ) ;
11401135 }
11411136 }
11421137 }
11431138
1144- displayError ( classes ) {
1139+ displayError ( classes , details = { } ) {
11451140 if ( this . isMain ( ) ) {
11461141 DOM . dispatchEvent ( window , "phx:page-loading-start" , {
1147- detail : { to : this . href , kind : "error" } ,
1142+ detail : { to : this . href , kind : "error" , ... details } ,
11481143 } ) ;
11491144 }
11501145 this . showLoader ( ) ;
0 commit comments