resolve static method
Resuelve qué BuildContext usar: el que te pasaron explícito, o si no
hay, el de navigatorKey — mismo criterio que ya usan
GpNotification/GpSnackBar para poder llamarse sin context (desde
un servicio, un interceptor, etc.), siempre que navigatorKey esté
conectado en el MaterialApp/Router de la app.
Devuelve null si ninguno de los dos está disponible — quien llama
decide qué hacer en ese caso (no lanza, para no tumbar la app por un
diálogo/navegación que no se pudo mostrar).
Implementation
static BuildContext? resolve(BuildContext? provided) {
final resolved = provided ?? navigatorKey.currentContext;
assert(
resolved != null,
'gp_design necesita un BuildContext: pasalo explícito o conectá '
'GpNavigator.navigatorKey en tu MaterialApp/Router.',
);
return resolved;
}