diff --git a/package-lock.json b/package-lock.json
index 7d2d004..d9c7eda 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,6 +13,7 @@
"@folder/xdg": "^4.0.1",
"ink": "^6.7.0",
"ink-link": "^5.0.0",
+ "ink-spinner": "^5.0.0",
"ink-text-input": "^6.0.0",
"meow": "^11.0.0",
"react": "^19.2.4"
@@ -1629,6 +1630,18 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/cli-spinners": {
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz",
+ "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/cli-truncate": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
@@ -4681,6 +4694,22 @@
"ink": ">=6"
}
},
+ "node_modules/ink-spinner": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/ink-spinner/-/ink-spinner-5.0.0.tgz",
+ "integrity": "sha512-EYEasbEjkqLGyPOUc8hBJZNuC5GvXGMLu0w5gdTNskPc7Izc5vO3tdQEYnzvshucyGCBXc86ig0ujXPMWaQCdA==",
+ "license": "MIT",
+ "dependencies": {
+ "cli-spinners": "^2.7.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "peerDependencies": {
+ "ink": ">=4.0.0",
+ "react": ">=18.0.0"
+ }
+ },
"node_modules/ink-testing-library": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/ink-testing-library/-/ink-testing-library-3.0.0.tgz",
@@ -9977,19 +10006,10 @@
}
},
"node_modules/xo/node_modules/typescript": {
- "version": "4.9.5",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
"integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
"dev": true,
- "inBundle": true,
- "license": "Apache-2.0",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
- },
- "engines": {
- "node": ">=4.2.0"
- }
+ "inBundle": true
},
"node_modules/xo/node_modules/yallist": {
"version": "4.0.0",
diff --git a/package.json b/package.json
index 5cdb122..47c9a61 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,7 @@
"@folder/xdg": "^4.0.1",
"ink": "^6.7.0",
"ink-link": "^5.0.0",
+ "ink-spinner": "^5.0.0",
"ink-text-input": "^6.0.0",
"meow": "^11.0.0",
"react": "^19.2.4"
diff --git a/source/app.tsx b/source/app.tsx
index f5e009d..59e4dbc 100644
--- a/source/app.tsx
+++ b/source/app.tsx
@@ -1,5 +1,6 @@
import React, {useState, useEffect, useCallback} from 'react';
import {Box, Text, useApp} from 'ink';
+import Spinner from 'ink-spinner';
import TextInput from 'ink-text-input';
import {TodoistApi, type Task} from '@doist/todoist-api-typescript';
import {type View, commands} from './commands.js';
@@ -145,7 +146,14 @@ export default function App() {
};
if (loading) {
- return Loading tasks...;
+ return (
+
+
+
+ {' '}
+ Loading
+
+ );
}
const viewLabel =