(version string)
| 86 | } |
| 87 | |
| 88 | func NewApp(version string) (*App, error) { |
| 89 | client, err := api.New() |
| 90 | if err != nil { |
| 91 | return nil, err |
| 92 | } |
| 93 | |
| 94 | database, _ := db.New() // non-fatal |
| 95 | |
| 96 | viewMode := ViewModeInitAuth |
| 97 | if client.IsInitialized() { |
| 98 | viewMode = ViewModePricing |
| 99 | } |
| 100 | |
| 101 | // Start with sensible defaults; the real size arrives via WindowSizeMsg |
| 102 | // on the first frame and updates every view immediately. |
| 103 | app := &App{ |
| 104 | version: version, |
| 105 | client: client, |
| 106 | db: database, |
| 107 | viewMode: viewMode, |
| 108 | authState: AuthStatePrompt, |
| 109 | pricingView: views.NewPricingView(0, 0), |
| 110 | historyView: views.NewHistoryView(0, 0), |
| 111 | settingsView: views.NewSettingsView(0, 0), |
| 112 | } |
| 113 | |
| 114 | if viewMode == ViewModePricing { |
| 115 | app.loadMetadataIntoView() |
| 116 | } |
| 117 | |
| 118 | return app, nil |
| 119 | } |
| 120 | |
| 121 | func (a *App) loadMetadataIntoView() { |
| 122 | meta, err := api.LoadMetadataFromFile() |
no test coverage detected