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 =