328aa2be94
* Add blocking announcement dialog feature * WIP custom dialog * Rework dialog and add native FocusScope * Lock scroll on web, fix backdrop * Add web FocusScope * Create custom Outlet for these announcements * Clean up FocusScope native impl * Comments * Some styling fixes * Handle screen reader specifically * Clean up state, remove Portal edits * Reorg, rename * Add syncing, tests * Revert dialog updates * Revert formatting * Delete unused file * Format * Add FullWindowOverlay * remove mmkv storage in debug btn * Add debug code * fix taps passing through on iOS * Reorg * Reorg, rename everything * Complete policy update after signup * Add logger * Move context around, unmount portals on native * Move a11y prop into FocusScope * Remove useMemo * Update dates * Move debug to dev settings * Unmount web portals until policy update completed * UPdate dates --------- Co-authored-by: Samuel Newman <mozzius@protonmail.com>
Logger
Simple logger for Bluesky.
At a Glance
import { logger, Logger } from '#/logger'
// or, optionally create new instance with custom context
// const logger = Logger.create(Logger.Context.Notifications)
// for dev-only logs
logger.debug(message, {})
// for production breadcrumbs
logger.info(message, {})
// seldom used, prefer `info`
logger.log(message, {})
// for non-error issues to look into, seldom used, prefer `error`
logger.warn(message, {})
// for known errors without an exception, use a string
logger.error(`known error`, {})
// for unknown exceptions
try {
} catch (e) {
logger.error(e, {message: `explain error`}])
}
Log Levels
Log level defaults to info. You can set this via the EXPO_PUBLIC_LOG_LEVEL
env var in .env.local.
Filtering debugs by context
Debug logs are dev-only, and not enabled by default. Once enabled, they can get
noisy. So you can filter them by setting the EXPO_PUBLIC_LOG_DEBUG env var
e.g. EXPO_PUBLIC_LOG_DEBUG=notifications. These values can be comma-separated
and include wildcards.