lint fix wip
This commit is contained in:
parent
0e856d958e
commit
cc84d85193
@ -11,10 +11,6 @@ export function SyncProgressBar(): React.ReactElement | null {
|
|||||||
const [lastSyncDate, setLastSyncDate] = useState<number | null>(null)
|
const [lastSyncDate, setLastSyncDate] = useState<number | null>(null)
|
||||||
const [totalDays, setTotalDays] = useState<number>(0)
|
const [totalDays, setTotalDays] = useState<number>(0)
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
void loadSyncStatus()
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
async function loadSyncStatus(): Promise<void> {
|
async function loadSyncStatus(): Promise<void> {
|
||||||
try {
|
try {
|
||||||
const state = nostrAuthService.getState()
|
const state = nostrAuthService.getState()
|
||||||
@ -28,12 +24,6 @@ export function SyncProgressBar(): React.ReactElement | null {
|
|||||||
|
|
||||||
setLastSyncDate(storedLastSyncDate)
|
setLastSyncDate(storedLastSyncDate)
|
||||||
setTotalDays(days)
|
setTotalDays(days)
|
||||||
|
|
||||||
// If everything is synced (no days to sync), don't show the progress bar
|
|
||||||
if (days === 0 && storedLastSyncDate >= currentTimestamp) {
|
|
||||||
setSyncProgress(null)
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error loading sync status:', error)
|
console.error('Error loading sync status:', error)
|
||||||
}
|
}
|
||||||
@ -66,21 +56,14 @@ export function SyncProgressBar(): React.ReactElement | null {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't show if not connected or if everything is synced
|
// Don't show if not connected
|
||||||
const state = nostrAuthService.getState()
|
const state = nostrAuthService.getState()
|
||||||
if (!state.connected || !state.pubkey) {
|
if (!state.connected || !state.pubkey) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
// If everything is synced, don't show the progress bar
|
// Check if sync is recently completed (within last hour)
|
||||||
if (totalDays === 0 && lastSyncDate !== null && lastSyncDate >= getCurrentTimestamp()) {
|
const isRecentlySynced = lastSyncDate !== null && lastSyncDate >= getCurrentTimestamp() - 3600
|
||||||
return null
|
|
||||||
}
|
|
||||||
|
|
||||||
// If sync is completed and no days to sync, don't show
|
|
||||||
if (syncProgress?.completed && totalDays === 0) {
|
|
||||||
return null
|
|
||||||
}
|
|
||||||
|
|
||||||
const progressPercentage = syncProgress && syncProgress.totalSteps > 0
|
const progressPercentage = syncProgress && syncProgress.totalSteps > 0
|
||||||
? Math.min(100, (syncProgress.currentStep / syncProgress.totalSteps) * 100)
|
? Math.min(100, (syncProgress.currentStep / syncProgress.totalSteps) * 100)
|
||||||
@ -108,7 +91,7 @@ export function SyncProgressBar(): React.ReactElement | null {
|
|||||||
<h3 className="text-lg font-semibold text-neon-cyan">
|
<h3 className="text-lg font-semibold text-neon-cyan">
|
||||||
{t('settings.sync.title')}
|
{t('settings.sync.title')}
|
||||||
</h3>
|
</h3>
|
||||||
{!isSyncing && totalDays > 0 && (
|
{!isSyncing && (
|
||||||
<button
|
<button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
void startSync()
|
void startSync()
|
||||||
@ -154,11 +137,17 @@ export function SyncProgressBar(): React.ReactElement | null {
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{!isSyncing && totalDays === 0 && lastSyncDate !== null && (
|
{!isSyncing && totalDays === 0 && isRecentlySynced && (
|
||||||
<p className="text-sm text-green-400">
|
<p className="text-sm text-green-400">
|
||||||
{t('settings.sync.completed')}
|
{t('settings.sync.completed')}
|
||||||
</p>
|
</p>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{!isSyncing && totalDays === 0 && !isRecentlySynced && (
|
||||||
|
<p className="text-sm text-cyber-accent">
|
||||||
|
{t('settings.sync.ready')}
|
||||||
|
</p>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -94,7 +94,12 @@ async function buildSeriesEvent(
|
|||||||
authorPubkey: string
|
authorPubkey: string
|
||||||
},
|
},
|
||||||
category: NonNullable<ArticleDraft['category']>
|
category: NonNullable<ArticleDraft['category']>
|
||||||
) {
|
): Promise<{
|
||||||
|
kind: number
|
||||||
|
created_at: number
|
||||||
|
content: string
|
||||||
|
tags: string[][]
|
||||||
|
}> {
|
||||||
// Map category to new system
|
// Map category to new system
|
||||||
const newCategory = category === 'science-fiction' ? 'sciencefiction' : 'research'
|
const newCategory = category === 'science-fiction' ? 'sciencefiction' : 'research'
|
||||||
|
|
||||||
@ -197,7 +202,12 @@ async function buildReviewEvent(
|
|||||||
text?: string
|
text?: string
|
||||||
},
|
},
|
||||||
category: NonNullable<ArticleDraft['category']>
|
category: NonNullable<ArticleDraft['category']>
|
||||||
) {
|
): Promise<{
|
||||||
|
kind: number
|
||||||
|
created_at: number
|
||||||
|
content: string
|
||||||
|
tags: string[][]
|
||||||
|
}> {
|
||||||
// Map category to new system
|
// Map category to new system
|
||||||
const newCategory = category === 'science-fiction' ? 'sciencefiction' : 'research'
|
const newCategory = category === 'science-fiction' ? 'sciencefiction' : 'research'
|
||||||
|
|
||||||
@ -260,7 +270,7 @@ async function buildUpdateTags(
|
|||||||
newCategory: 'sciencefiction' | 'research',
|
newCategory: 'sciencefiction' | 'research',
|
||||||
authorPubkey: string,
|
authorPubkey: string,
|
||||||
currentVersion: number = 0
|
currentVersion: number = 0
|
||||||
) {
|
): Promise<string[][]> {
|
||||||
// Generate hash ID from publication data
|
// Generate hash ID from publication data
|
||||||
const hashId = await generatePublicationHashId({
|
const hashId = await generatePublicationHashId({
|
||||||
pubkey: authorPubkey,
|
pubkey: authorPubkey,
|
||||||
|
|||||||
@ -7,7 +7,15 @@ import { getPrimaryRelaySync } from './config'
|
|||||||
import { MIN_EVENT_DATE } from './platformConfig'
|
import { MIN_EVENT_DATE } from './platformConfig'
|
||||||
import { parseObjectId } from './urlGenerator'
|
import { parseObjectId } from './urlGenerator'
|
||||||
|
|
||||||
function buildSponsoringFilters(authorPubkey?: string, payerPubkey?: string, seriesId?: string, articleId?: string) {
|
function buildSponsoringFilters(authorPubkey?: string, payerPubkey?: string, seriesId?: string, articleId?: string): Array<{
|
||||||
|
kinds: number[]
|
||||||
|
since?: number
|
||||||
|
authors?: string[]
|
||||||
|
'#p'?: string[]
|
||||||
|
'#series'?: string[]
|
||||||
|
'#article'?: string[]
|
||||||
|
'#kind_type'?: string[]
|
||||||
|
}> {
|
||||||
const filters: Array<{
|
const filters: Array<{
|
||||||
kinds: number[]
|
kinds: number[]
|
||||||
since?: number
|
since?: number
|
||||||
|
|||||||
@ -19,7 +19,7 @@ interface ParseResult {
|
|||||||
files: Record<string, FormidableFile[]>
|
files: Record<string, FormidableFile[]>
|
||||||
}
|
}
|
||||||
|
|
||||||
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
|
export default async function handler(req: NextApiRequest, res: NextApiResponse): Promise<void> {
|
||||||
if (req.method !== 'POST') {
|
if (req.method !== 'POST') {
|
||||||
return res.status(405).json({ error: 'Method not allowed' })
|
return res.status(405).json({ error: 'Method not allowed' })
|
||||||
}
|
}
|
||||||
|
|||||||
@ -241,6 +241,7 @@ settings.sync.start=Start Synchronization
|
|||||||
settings.sync.daysRange=From {{startDate}} to {{endDate}} ({{days}} days)
|
settings.sync.daysRange=From {{startDate}} to {{endDate}} ({{days}} days)
|
||||||
settings.sync.progress=Step {{current}} of {{total}}
|
settings.sync.progress=Step {{current}} of {{total}}
|
||||||
settings.sync.completed=Everything is synchronized
|
settings.sync.completed=Everything is synchronized
|
||||||
|
settings.sync.ready=Ready to synchronize
|
||||||
settings.nip95.title=NIP-95 Upload Endpoints
|
settings.nip95.title=NIP-95 Upload Endpoints
|
||||||
settings.nip95.loading=Loading...
|
settings.nip95.loading=Loading...
|
||||||
settings.nip95.error.loadFailed=Failed to load NIP-95 APIs
|
settings.nip95.error.loadFailed=Failed to load NIP-95 APIs
|
||||||
|
|||||||
@ -241,6 +241,7 @@ settings.sync.start=Démarrer la synchronisation
|
|||||||
settings.sync.daysRange=Du {{startDate}} au {{endDate}} ({{days}} jours)
|
settings.sync.daysRange=Du {{startDate}} au {{endDate}} ({{days}} jours)
|
||||||
settings.sync.progress=Étape {{current}} sur {{total}}
|
settings.sync.progress=Étape {{current}} sur {{total}}
|
||||||
settings.sync.completed=Tout est synchronisé
|
settings.sync.completed=Tout est synchronisé
|
||||||
|
settings.sync.ready=Prêt à synchroniser
|
||||||
settings.language.title=Langue de préférence
|
settings.language.title=Langue de préférence
|
||||||
settings.language.description=Choisissez votre langue préférée pour l'interface
|
settings.language.description=Choisissez votre langue préférée pour l'interface
|
||||||
settings.language.loading=Chargement...
|
settings.language.loading=Chargement...
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user