Giter VIP home page Giter VIP logo

getspacetime / spacetime Goto Github PK

View Code? Open in Web Editor NEW
58.0 58.0 10.0 25.21 MB

A fully featured cross-platform API Client for REST, gRPC, and more. Built with .NET MAUI Blazor

License: MIT License

C# 56.98% HTML 41.01% CSS 0.07% JavaScript 1.19% PowerShell 0.75%
blazor cross-platform csharp developer-tools dotnet grpc-client kafka-client macos maui maui-blazor rest-client websocket-client windows

spacetime's People

Contributors

codymullins avatar dependabot[bot] avatar iambipinpaul avatar tomwarner13 avatar twarner-dealeron avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

spacetime's Issues

Automate Mac Build

  • Write scripts to publish a Mac executable / installer
  • Add Mac build to Github Actions
  • Automatically create release with Mac .app file

gRPC - refresh all services

Once #31 is done, we should be able to add a "refresh" button near the "add service" button in the request pane. This should refresh all the services using the "simple" method in #31.

Add toggle to beautify response

We added the ability to beautify responses in #10.

Implement the toggle setting using the "Paint" icon on the Response toolbar.

  • Add toggle (either globally or per request)
  • Save status of toggle
  • Add unit tests for beautify + toggle
  • This toggle should take effect during the request

image

Flexible panels

Many code editors and applications allow for flexible panels. Support should be added to resize the request / response panes of the clients.

gRPC - update existing services

Currently, Spacetime supports adding new gRPC services using reflection. We now need support for updating these services.

Simple

  • Right click on a service, the context menu should have an "update" menu item
  • Clicking this menu item should refresh the service

Advanced

  • Right click on a service, the context menu should have an "update" menu item with a submenu "update" and "update (advanced)" todo: choose better naming
  • Clicking this menu item (advanced) should open a popup allowing a user to change the settings for the service. for now, just the host URL

Notes

  • Simple method should not prompt the user again in most scenarios
  • Should show a loading indicator for the service and a little checkmark when done
  • Should show an error if something bad happened and let the user take an action

When switching dark or light themes, the editor does not immediately switch themes

Describe the bug
When switching dark or light themes, the editor does not immediately switch themes

To Reproduce
Steps to reproduce the behavior:

  1. Execute a request
  2. Open the settings dialog
  3. Switch the theme (dark to light or vice-versa)
  4. Click OK
  5. Themes for the app switch, editor does not
  6. Click the header tab under the response or request
  7. Click back to the editor, now the theme has switched.

Expected behavior
Theme for the editor should switch immediately after changing themes.
A clear and concise description of what you expected to happen.

Notes
This may be fixed by figuring out how to manually destroy and re-render the editor. Potentially with StateHasChanged?

Remove Tailwind

I love Tailwind. That said, for consistency's sake, it's better for now to go all-in with using MudBlazor's components and styling system. MudBlazor is too hard to customize while using Tailwind and adds an additional piece of complexity, that quite simply I don't have the bandwidth to tackle.

  • Replace containers with MudBlazor containers
  • Replace utilities with MudBlazor utilities
    • Padding
    • Margin
    • Width
  • Add CSS or reusable utilities where not found in MudBlazor
  • Remove Webpack (we shouldn't need it after Tailwind is gone)
  • TBD

Add support for secret headers

Add support for secret headers, for example, if adding an Authorization header - you don't always need or want the value to be visible. These should be treated as secrets.

Pasted inputs are duplicated on MacOS

Pasting in to inputs on the REST client are causing the pasted contents to be duplicated.

  1. Create a new request
  2. Paste a URL in to the Request URL box
  3. The pasted URL is duplicated
  4. Add a header
  5. Paste a value in to the value box
  6. The pasted value is duplicated

OS: Mac
Windows appears to work fine. Could this be related to the performance issues seen on certain Macs?

Add ability to group requests in folders

MudBlazor supports nested lists and tree views. We should be able to utilize these components to be able to create folders for our requests.

This will require both UI changes and data structure changes.

UI

  • Add new button/button group with the existing "add request" button for folder creation
  • Add ability to move request into a folder or out of a folder
  • Add ability to delete folder + contents
  • Add warning for deleting folder with contents
  • TBD

Data structure

  • Add support for folder location on the SpacetimeRequest
  • TBD

Integrate security settings

  • Allow enable/disable of cert validation
  • Enable ability to encrypt local database
  • Move settings reset and db deletion to general tab

image

Sortable request list

When switching to MudBlazor and utilizing the List component, we lost the ability to sort requests.

  • Add a drag handle element to the list
  • Be able to reorder the items in the list
  • Persist the order of the items

Note: I briefly tried the dropzone component in MudBlazor for this use case, but it crashed the app. Could use more investigation.

Editors switching positions

The Monaco editor tends to switch from the right pane to the left pane.

Further investigation needed. It seems to occur when the pane disappears, e.g. when switching to the headers tab and back or vice-versa.

Add support to toggle headers on/off

Add support for toggling headers on and off for a request. Currently, only deletion is allowed.

  • Add a checkbox to enable / disable
  • Modify UX to indicate header is disabled

Support to edit request names

In an effort to migrate custom components to MudBlazor, support for editing request names was intentionally removed.

  • Allow the user to click in the MudListItem to edit the text. Currently, this component may only support text fields.

Improve the flow for adding gRPC services / methods

In the current flow, we add all services found in the reflection service of a gRPC server to the collection.

  • Detect matching services and default to update them
  • Allow user to select which services / methods to add

Current flow
75B4CCA8-2970-4A14-ACF9-3A7573BFAC10

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.