# Code coverage report for src/hooks/useSettingsState.ts

# All files / src/hooks useSettingsState.ts

100% Statements 82/82
100% Branches 5/5
100% Functions 4/4
100% Lines 82/82

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    841x
    1x
    1x
    1x
    1x
    1x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    1x
    1x
    14x
    14x
    1x
    1x
    14x
    14x
    1x
    1x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x
    14x

     import { useEffect } from 'react'
    import { useDatabaseOperations } from './useDatabaseOperations'
    import { useStorageConfig } from './useStorageConfig'
    import { useStorageMigration } from './useStorageMigration'

    export function useSettingsState() {
      const {
        stats,
        loading,
        schemaHealth,
        checkingSchema,
        loadStats,
        checkSchemaHealth,
        handleExport,
        handleImport,
        handleClear,
        handleSeed,
        formatBytes,
      } = useDatabaseOperations()

      const {
        storageBackend,
        setStorageBackend,
        flaskUrl,
        setFlaskUrl,
        flaskConnectionStatus,
        setFlaskConnectionStatus,
        testingConnection,
        envVarSet,
        loadConfig,
        handleTestConnection,
        handleSaveStorageConfig: saveConfig,
      } = useStorageConfig()

      const {
        handleMigrateToFlask: migrateToFlask,
        handleMigrateToIndexedDB,
      } = useStorageMigration()

      useEffect(() => {
        loadStats()
        checkSchemaHealth()
        loadConfig()
      }, [loadStats, checkSchemaHealth, loadConfig])

      const handleSaveStorageConfig = async () => {
        await saveConfig(loadStats)
      }

      const handleMigrateToFlask = async () => {
        await migrateToFlask(flaskUrl, loadStats)
      }

      const handleMigrateToIndexedDBWrapper = async () => {
        await handleMigrateToIndexedDB(flaskUrl)
      }

      return {
        stats,
        loading,
        storageBackend,
        setStorageBackend,
        flaskUrl,
        setFlaskUrl,
        flaskConnectionStatus,
        setFlaskConnectionStatus,
        testingConnection,
        envVarSet,
        schemaHealth,
        checkingSchema,
        handleExport,
        handleImport,
        handleClear,
        handleSeed,
        formatBytes,
        handleTestConnection,
        handleSaveStorageConfig,
        handleMigrateToFlask,
        handleMigrateToIndexedDB: handleMigrateToIndexedDBWrapper,
        checkSchemaHealth,
      }
    }