// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System.Timers;
using Microsoft.CommandPalette.Extensions;
using Microsoft.CommandPalette.Extensions.Toolkit;
using Microsoft.VisualBasic;

namespace SamplePagesExtension;

public partial class SampleUpdatingItemsPage : ListPage
{
    private readonly ListItem hourItem = new(new NoOpCommand());
    private readonly ListItem minuteItem = new(new NoOpCommand());
    private readonly ListItem secondItem = new(new NoOpCommand());
    private static Timer timer;

    public SampleUpdatingItemsPage()
    {
        Name = "Open";
        Icon = new IconInfo("\uE72C");
    }

    public override IListItem[] GetItems()
    {
        if (timer is null)
        {
            timer = new Timer(500);
            timer.Elapsed += (object source, ElapsedEventArgs e) =>
            {
                var current = DateAndTime.Now;
                hourItem.Title = $"{current.Hour}";
                minuteItem.Title = $"{current.Minute}";
                secondItem.Title = $"{current.Second}";
            };
            timer.AutoReset = true; // Keep repeating
            timer.Enabled = true;
        }

        return [hourItem, minuteItem, secondItem];
    }
}
