Coder Social home page Coder Social logo

ash_hq's People

Contributors

brettkolodny avatar jimsynz avatar joshprice avatar juddey avatar markholmes avatar mbuhot avatar nirjan-dev avatar rachouan avatar sevenseacat avatar theosaurus-rex avatar totaltrash avatar woutdp avatar zachdaniel 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ash_hq's Issues

AshPhoenix and AshPostgres should be enabled by default when viewing the documentation

At the moment only Ash is enabled by default, but in the majority of cases, new users will be using all three of the libraries and may get tripped up on how to enable the others.

Have seen this internally even after the addition of the Big Blue Box - user asking why the documentation for AshPhoenix is missing on AshHQ, not realizing it needed to be enabled first.

Scroll occurs when search results are returned in the modal

Brief Description

This is a bit of a weird one - I noticed that the background content of the page scrolls when search results are returned.

Steps to reproduce the bug

The video perhaps sums it up better!

Context

Screen.Recording.2023-02-13.at.11.15.28.am.mov

Search results should prioritize exact matches

Brief Description
eg. when searching for load, I'd expect exact matches for functions named load to be first in the results.

Screen Shot 2022-11-01 at 11 05 00 am

(The first exact match, the function Ash.Api.load, is the thirteenth result in the search)

Document transformers automatically

When writing extensions, knowing what other transformers might be running is important information. In each extension, we should automatically document each transformer.

Modules/functions in backticks should link either to hexdocs or to ash-hq, depending.

I've laid the groundwork for the beginning of this. When highlighting code, we parse inline code blocks and annotate them with things like data-module and data-function depending. Things remaining:

  • Do this for typespecs. Will likely require a more advanced parsing than what we've done for inline code blocks
  • Mimic what hexdocs does for this in some way. We can use their own iframe strategy to look at other libs that don't exist in ash_hq potentially. When and where we actually find the function in question is its own question. We don't have the same limitations that hex has of needing to run the same from a static file, so we could actually add supporting json api endpoints if necessary.

This may require additions to the work I've done so far.

Usability-, accessibility-, and general user interface tweaks

Perhaps an issue is not the best place to gather these, so please feel free to move elsewhere. I wanted to compile these somewhere so that they can be addressed one way or the other.

Observing the site, I came up with the following list of small items that could possibly be tweaked:

  • Get Started -button at the front page: only text is clickable, not the visual button
  • Get Started -button at the front page: opens to new tab without any particular reason
  • Search Documentation -button is styled to look like a text field but isn't
  • Search Documentation -button hints at Mac-only button (cmd) for non-Mac OSes
  • Mailing list join button / form submit gives no visual feedback when form cannot be submitted (nothing happens)
  • "Example code windows" accordion toggle icon: clickable area too small
    • Ideally a clickable area should be at least 44 x 44 pixels. I think we could make the whole "tool bar" area clickable, sidestepping the icon issue entirely
  • "Example code windows" accordion titles are not headings
    • Using heading elements would improve navigation possibilities and probably have some impact on SEO
  • Search modal: labels on checkboxes are not clickable
    • Clicking on a label should (de)activate that labels' checkbox
  • "Including packages": clickable area on remove package -icon too small
    • Same 44 x 44 pixels issue here. Probably no space to make it this big, but a size-improvement would still be helpful in removing the need for a very fine pointer to hit the target.
  • Docs sidebar: Placed in the markup before the content is. Causes CTRL/CMD+F in-page searches to be very cumbersome, as user needs to first pass all the results in the navigation
  • Docs sidebar: "Including packages" allows removing Ash core from selection, but still shows contents on sidebar
    • More specifically, the function reference remains but the guides do not
  • Docs sidebar: "Including packages" allows changing Ash core version, but still shows contents from initial load
    • More specifically, having 2.0.0RC12 loaded means that all links lead to 2.0.0RC12 content, despite choosing a different version of Ash
  • Package version indicator: absolute position floats above headings/content in certain screen size + content combinations
    • Happens on desktop too if the top heading is long enough
  • Right-hand function list: clicks on anchors have a visual jerk
    • More specifically, there's some kind of animated nudge when a link is clicked
  • Function documentation: There is some kind of "snap to element" behavior that makes scrolling with a mouse extremely jerky and difficult. Relates to above point about Right-hand function list.
    • In general we probably should avoid touching native scrolling at all.
  • Docs content area: narrow area for scrolling, makes scrolling page unnecessarily difficult as scrolling has to happen within the narrow content container instead of anywhere on the page
  • Mobile UI: hamburger icon on left side harder to use for larger part of the population
    • Most people are right-handed, so when using mobile phones they tend to hold it on their right hand when using one-handed. This leaves their thumb at the absolute opposite side from the menu button.
  • Mobile UI: hamburger icon doesn't show state
    • The icon could update to show whether it is active or not, making understanding the system's state easier
  • Mobile UI: floating menu doesn't close when loading new content
    • My assumption is that most users would prefer to read the content as the next thing after choosing an item from the menu
  • Mobile UI: Scroll position doesn't reset to the top when navigating to a new section.

Build code examples on top of the Helpdesk app from the Get Started guide

Show where you found the issue

I have followed the Get Started guide to build the Helpdesk app and then followed the Whats next section where we have a link to learn how to use Code interfaces.

While I perfectly understood how to use the define_for , because it builds on top of the Helpdesk app, I wasn't able to grasp how to use the define_interface, because the example for it doesn't build on top of the Helpdesk app.

Share the problematic documentation

define_for and define_interface

Notice how we included a specific Api module using define_for above. Without this, no functions will be defined in the resource. This is because you might want to define the interface for multiple resources in a single module. While we encourage the use of define_for Api , it is not the only way to do it. You could also do something like this:

defmodule MyApp.MyApi.Interface do
 require Ash.CodeInterface

 Ash.CodeInterface.define_interface(MyApp.MyApi, MyApp.Resource1)
 Ash.CodeInterface.define_interface(MyApp.MyApi, MyApp.Resource2)
end

And then call functions on MyApp.MyApi.Interface instead. 

`

Additional context

It would be awesome if all the docs code examples would build on top of the HelpDesk app.

Recently Viewed Docs

Track recently viewed documentation for each user, and surface it in the search bar.

Allow bookmarking documentation

Since users can log in, we can support them bookmarking documentation and having a bookmarks page that shows all their bookmarked documentation.

Add a "modify this guide" button, like the source code button on modules

When viewing a guide, we should add a link to modify the current guide that links to the source file for that guide. We should know where this is because we have the library version, and currently they are all at the same derived github path (inside the ash-project, the repo is the same as the library), and are in the /documentation/ directory.

404 without sufficient redirect

Show where you found the issue
Bottom of page: https://ash-hq.org/docs/guides/ash/2.4.2/topics/multitenancy
In the sentence: "For AshPostgres context multitenancy, which uses postgres schemas, see the guide"
The word guide links to guide

Share the problematic documentation
This 404's, PAGE NOT FOUND in Hexdocs.pm

Additional context
Should probably link to https://hexdocs.pm/ash_postgres/schema-based-multitenancy.html
Although this does not exactly describe "context multitenancy"

First visit search could do with some defaults

Currently, your first visit to Ash HQ, you can search the documentation, but the search defaults to 'None' for the project versions:

image

It might make sense to default Ash to the current version?

Note, you can't replicate this with a private window (something must be shared between a private window and a previous non private session)

Ideas

  • add discord widget to site
  • add a hiring/jobs page
  • add a paid support page
  • put up sponsor logos

Add explanatory text when the search bar is empty

CleanShot 2022-11-05 at 10 31 35@2x

Its been pointed out that even knowing that you can click on the plus button to add new libraries is very difficult. So what we want to do is make some descriptive language appear in the empty box that will make it clear how this all works. Eventually we can also show "recent items" and bookmarks if people are logged in.

Incorrect headings when navigating between particular pages

Brief Description

Navigating from https://ash-hq.org/docs/guides/ash_postgres/1.1.1/topics/polymorphic_resources.md to https://ash-hq.org/docs/guides/ash_postgres/1.1.1/topics/migrations_and_tasks.md via the tree-view results in the "Migrations" heading appears both as a <h1> and as a <h2> (see image).

Steps to reproduce the bug

On MacOS Safari visit https://ash-hq.org/docs/guides/ash_postgres/1.1.1/topics/polymorphic_resources.md
Click the Guides -> Topics -> Ash Postgres -> Migrations and Tasks link in the tree view
Notice the header is incorrect.
Refresh the page and it displays correctly.

Context

image

Perhaps it is related to both pages having a DOM element with id="migrations" ?

Prefer more specific matches in documentation search result ordering

Currently the search mechanism for documentation doesn't sort results based on how specific a match is between the search term and the result.

This can be replicated by navigating to https://ash-hq.org/ and searching for flow. The first results will contain the search phrase, but the main page for Ash.Flow requires some scrolling to find. A similar situation also happens if one searches for ash.flow, as the other modules beginning with ash.flow will be placed in the results before the exact match of ash.flow is.

From a user's point of view this seems bothersome, as when I'm searching specifically for Ash.Flow, I would expect the exact match of Ash.Flow be the top result.

I don't know what the best approach would be to defining a more desirable sorting mechanism, and perhaps building various hand-crafted rules isn't the way to go here.

Just for the sake of rubberducking though, it looks like the hierarchy itself might be one place to look into (if we have that information available to us when ordering the results): perhaps if we have multiple matches, we could give more weight to results that are higher in the hierarchy (aka. closer to the top)?

Or perhaps something akin String.jaro_distance/2 could be used to rank the match-in-module-name ranks?

Changing version of active library does not update current URL

eg. when viewing https://ash-hq.org/docs/guides/ash/2.5.12/tutorials/get-started

  • open catalogue and select a different version of the core Ash lib
  • the URL (and all links on the page) still reference the previously-selected version of Ash

ideally we should go to the same page in that version of the docs, ie. if we select 2.5.16 then we should get redirected to https://ash-hq.org/docs/guides/ash/2.5.16/tutorials/get-started

Leads to a weird inconsistency where the catalogue says newly-selected version is active, but closing the catalogue shows a version pill of 2.5.12 in the sidebar

Code snippets don't have syntax higlighting

Brief Description

Code snippets don't have syntax highlighting.

As far as I can tell, this isn't an issue with a specific package, it occurs across all related Ash packages. There appears to be relevant classes associated with each <code> element e.g. bash or elixir but there is no styling applied, just white text on a sark grey background.

Steps to reproduce the bug

  1. Visit a documentation page with a code block present. e.g. https://www.ash-hq.org/docs/guides/ash/latest/tutorials/get-started#add-ash-to-your-application
  2. Notice the code blocks have no syntax highlighting.

Context

Here's an example of a code block taken from here

Screenshot 2022-12-23 at 16 17 56

Memory usage issues on ash_hq

It appears that we hit a memory usage limit on ash_hq in fly.io, almost certainly because of an import running. We upgraded to their suggested amount of memory in response. We got a nice little email from fly with the exact command to run to increase the memory to their recommended value. Very convenient. This issue serves as documentation for that event.

Can't run the importer in the fly.io deployed container

At the moment, the docker container raises an erlang runtime error for some reason when we try to run the importer. I've only gotten it to work on my local machine, and eventually we want it to work on the deployed container.

Version Selector & extension explainer modal

Right now you can only add or remove packages, but the end goal is being able to select specific versions of packages, as well as browse the list to see an explanation of what each package is.

Selecting a search result doesn’t update the main navigation with the new page

Brief Description

Before the sidebar rewrite, I think this worked correctly - the nav would change and any necessary nodes would be expanded to show the node for the new page.

Steps to reproduce the bug

Error in iex when running ash-hq locally

Seeing an error reported in iex when running locally. This is a fresh local install.

  • start the server
  • open in browser
  • click 'get started'
  • page loads fine, but the following error is reported in terminal:

[error] Invalid link %Protocol.UndefinedError{description: "", protocol: String.Chars, value: #AshHq.Docs.LibraryVersion<meta: #Ecto.Schema.Metadata<:loaded, "library_versions">, order: nil, aggregates: %{}, calculations: %{}, extensions: [#AshHq.Docs.Extension<meta: #Ecto.Schema.Metadata<:loaded, "extensions">, order: nil, aggregates: %{}, calculations: %{}, default_for_target: true, doc: nil, doc_html: nil, dsls: [#AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["validation"], links: %{"guides" => ["ash:guide:Actions"], "modules" => ["ash:module:Ash.Resource.Change"]}, examples: ["validate {Mod, [foo: :bar]}", "validate at_least_one_of_present([:first_name, :last_name])"], extension_id: "626567d7-7d50-42c2-b9c3-f79534551179", id: "cf007ffb-9466-4d38-b3cc-805c474e2ca1", extension_name: "Resource", matches: #Ash.NotLoaded<:calculation>, dsl: #Ash.NotLoaded<:relationship>, aggregates: %{}, doc_html: nil, name: "validate", library_id: "6b5d023e-48b1-43e3-ae7c-efb82eb59a84", extension_order: 0, options: #Ash.NotLoaded<:relationship>, library_version_id: "616bc185-3c4d-4585-8d9d-21d0d7c11230", match_rank: #Ash.NotLoaded<:calculation>, dsls: #Ash.NotLoaded<:relationship>, type: :entity, order: nil, calculations: %{}, sanitized_path: "validations/validate", name_matches: #Ash.NotLoaded<:calculation>, library_version: #Ash.NotLoaded<:relationship>, meta: #Ecto.Schema.Metadata<:loaded, "dsls">, doc: nil, html_for: #Ash.NotLoaded<:calculation>, dsl_id: nil, order: 0, library_name: "ash", extension: #Ash.NotLoaded<:relationship>, ...>, #AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["preparation"], links: %{"guides" => ["ash:guide:Actions"]}, examples: ["prepare build(sort: [:foo, :bar])"], extension_id: "626567d7-7d50-42c2-b9c3-f79534551179", id: "f3988e6d-5f7a-44cf-9297-853da8937686", extension_name: "Resource", matches: #Ash.NotLoaded<:calculation>, dsl: #Ash.NotLoaded<:relationship>, aggregates: %{}, doc_html: nil, name: "prepare", library_id: "6b5d023e-48b1-43e3-ae7c-efb82eb59a84", extension_order: 0, options: #Ash.NotLoaded<:relationship>, library_version_id: "616bc185-3c4d-4585-8d9d-21d0d7c11230", match_rank: #Ash.NotLoaded<:calculation>, dsls: #Ash.NotLoaded<:relationship>, type: :entity, order: nil, calculations: %{}, sanitized_path: "preparations/prepare", name_matches: #Ash.NotLoaded<:calculation>, library_version: #Ash.NotLoaded<:relationship>, meta: #Ecto.Schema.Metadata<:loaded, "dsls">, doc: nil, html_for: #Ash.NotLoaded<:calculation>, dsl_id: nil, order: 0, library_name: "ash", ...>, #AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["change"], links: %{"guides" => ["ash:guide:Actions"], "modules" => ["ash:module:Ash.Resource.Change"]}, examples: ["change relate_actor(:reporter)", "change {MyCustomChange, :foo}"], extension_id: "626567d7-7d50-42c2-b9c3-f79534551179", id: "3309fd83-931f-4939-9e51-be618af8b117", extension_name: "Resource", matches: #Ash.NotLoaded<:calculation>, dsl: #Ash.NotLoaded<:relationship>, aggregates: %{}, doc_html: nil, name: "change", library_id: "6b5d023e-48b1-43e3-ae7c-efb82eb59a84", extension_order: 0, options: #Ash.NotLoaded<:relationship>, library_version_id: "616bc185-3c4d-4585-8d9d-21d0d7c11230", match_rank: #Ash.NotLoaded<:calculation>, dsls: #Ash.NotLoaded<:relationship>, type: :entity, order: nil, calculations: %{}, sanitized_path: "changes/change", name_matches: #Ash.NotLoaded<:calculation>, library_version: #Ash.NotLoaded<:relationship>, meta: #Ecto.Schema.Metadata<:loaded, "dsls">, doc: nil, html_for: #Ash.NotLoaded<:calculation>, dsl_id: nil, order: 0, ...>, #AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["name", "keys"], links: %{"guides" => ["ash:guide:Identities"]}, examples: ["identity :name, [:name]", "identity :full_name, [:first_name, :last_name]"], extension_id: "626567d7-7d50-42c2-b9c3-f79534551179", id: "8302ca73-2828-4613-8b1d-c0709fe9ec2c", extension_name: "Resource", matches: #Ash.NotLoaded<:calculation>, dsl: #Ash.NotLoaded<:relationship>, aggregates: %{}, doc_html: nil, name: "identity", library_id: "6b5d023e-48b1-43e3-ae7c-efb82eb59a84", extension_order: 0, options: #Ash.NotLoaded<:relationship>, library_version_id: "616bc185-3c4d-4585-8d9d-21d0d7c11230", match_rank: #Ash.NotLoaded<:calculation>, dsls: #Ash.NotLoaded<:relationship>, type: :entity, order: nil, calculations: %{}, sanitized_path: "identities/identity", name_matches: #Ash.NotLoaded<:calculation>, library_version: #Ash.NotLoaded<:relationship>, meta: #Ecto.Schema.Metadata<:loaded, "dsls">, doc: nil, html_for: #Ash.NotLoaded<:calculation>, dsl_id: nil, ...>, #AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["name"], links: %{"guides" => ["ash:guide:Code Interface"]}, examples: ["define :get_user_by_id, action: :get_by_id, args: [:id], get?: true"], extension_id: "626567d7-7d50-42c2-b9c3-f79534551179", id: "b3cc6c2f-5028-42fd-b9ae-9455c54d9f9f", extension_name: "Resource", matches: #Ash.NotLoaded<:calculation>, dsl: #Ash.NotLoaded<:relationship>, aggregates: %{}, doc_html: nil, name: "define", library_id: "6b5d023e-48b1-43e3-ae7c-efb82eb59a84", extension_order: 0, options: #Ash.NotLoaded<:relationship>, library_version_id: "616bc185-3c4d-4585-8d9d-21d0d7c11230", match_rank: #Ash.NotLoaded<:calculation>, dsls: #Ash.NotLoaded<:relationship>, type: :entity, order: nil, calculations: %{}, sanitized_path: "code_interface/define", name_matches: #Ash.NotLoaded<:calculation>, library_version: #Ash.NotLoaded<:relationship>, meta: #Ecto.Schema.Metadata<:loaded, "dsls">, doc: nil, html_for: #Ash.NotLoaded<:calculation>, ...>, #AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["change"], links: %{"guides" => ["ash:guide:Actions"], "modules" => ["ash:module:Ash.Resource.Change"]}, examples: ["change relate_actor(:reporter)", "change {MyCustomChange, :foo}"], extension_id: "626567d7-7d50-42c2-b9c3-f79534551179", id: "e99c7926-3e8d-49c8-a598-7c016e2e2bef", extension_name: "Resource", matches: #Ash.NotLoaded<:calculation>, dsl: #Ash.NotLoaded<:relationship>, aggregates: %{}, doc_html: nil, name: "change", library_id: "6b5d023e-48b1-43e3-ae7c-efb82eb59a84", extension_order: 0, options: #Ash.NotLoaded<:relationship>, library_version_id: "616bc185-3c4d-4585-8d9d-21d0d7c11230", match_rank: #Ash.NotLoaded<:calculation>, dsls: #Ash.NotLoaded<:relationship>, type: :entity, order: nil, calculations: %{}, sanitized_path: "actions/destroy/change", name_matches: #Ash.NotLoaded<:calculation>, library_version: #Ash.NotLoaded<:relationship>, meta: #Ecto.Schema.Metadata<:loaded, "dsls">, doc: nil, ...>, #AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["change"], links: %{"guides" => ["ash:guide:Actions"], "modules" => ["ash:module:Ash.Resource.Change"]}, examples: ["change relate_actor(:reporter)", "change {MyCustomChange, :foo}"], extension_id: "626567d7-7d50-42c2-b9c3-f79534551179", id: "6741e884-949e-457f-8585-87ffcf9ccb2c", extension_name: "Resource", matches: #Ash.NotLoaded<:calculation>, dsl: #Ash.NotLoaded<:relationship>, aggregates: %{}, doc_html: nil, name: "change", library_id: "6b5d023e-48b1-43e3-ae7c-efb82eb59a84", extension_order: 0, options: #Ash.NotLoaded<:relationship>, library_version_id: "616bc185-3c4d-4585-8d9d-21d0d7c11230", match_rank: #Ash.NotLoaded<:calculation>, dsls: #Ash.NotLoaded<:relationship>, type: :entity, order: nil, calculations: %{}, sanitized_path: "actions/update/change", name_matches: #Ash.NotLoaded<:calculation>, library_version: #Ash.NotLoaded<:relationship>, meta: #Ecto.Schema.Metadata<:loaded, "dsls">, ...>, #AshHq.Docs.Dsl<version_name: "2.0.0-rc.3", search_headline: #Ash.NotLoaded<:calculation>, args: ["name", "type"], links: %{}, examples: ["argument :password_confirmation, :string"], extension_id: "626567d7-7d50-4 (truncated)

js collapsable sidebar

Need to improve the general behavior of the sidebar, and make all expansion/selection state client-side.

Use AshAuthentication

We should remove our hand rolled authentication layer and use the new AshAuthentication.

Output is blank for Ash Postgres Tutorial in Dark Mode

Brief Description

Viewing Docs at ash-hq.org

Steps to reproduce the bug
Activate Dark Mode in MacOS or Linux
Navigate to https://ash-hq.org/docs/guides/ash_postgres/latest/ashpostgres

The blue topbar runs, but no content is displayed.

Specifically tested on: Linux/Firefox & MacOS /Safari dark modes.

Context
Content failing to display in dark mode in FF Linux
image

Note this does not occur in light mode (could only test on Chrome/Linux)
image

I guess the first question is, can we replicate in Google Chrome's dark mode on MacOS?

Package filter resets when selecting a search result

Brief Description

Just came across this - makes it really hard to use consistently for multiple packages! I always want to have Ash and AshPhoenix selected as active packages.

Steps to reproduce the bug

  • Visit ash-hq.org
  • Under "Selected Packages" in left sidebar, select some stuff (eg. Ash and AshPhoenix latest)
  • Use big "Search documentation" search bar at top of screen
  • Search for something within Ash, eg. changeset
  • Click first search result (which for me in this case is Ash.Generator.changeset, make sure it's something within the Ash package)
  • Page reloads at the selected result, eg. https://www.ash-hq.org/docs/module/ash/latest/ash-generator/#function-changeset-4
  • "Selected Packages" now resets to only be "ash | 2.4.2"

Invalid link error in Get Started guide

Currently, when running locally, navigating to the Get Started guide via either the CTA button on the home page or the book icon in the top nav throws the following error:

    nil.version()
    (ash_hq 0.1.0) lib/ash_hq_web/pages/docs.ex:453: AshHqWeb.Pages.Docs.render_mix_dep/3
    (ash_hq 0.1.0) lib/ash_hq_web/pages/docs.ex:421: anonymous fn/2 in AshHqWeb.Pages.Docs.render_mix_deps/2
    (elixir 1.13.4) lib/regex.ex:739: Regex.apply_list/5
    (elixir 1.13.4) lib/regex.ex:734: Regex.apply_list/5
    (elixir 1.13.4) lib/regex.ex:669: Regex.replace/4
    (ash_hq 0.1.0) lib/ash_hq_web/pages/docs.ex:122: anonymous fn/2 in AshHqWeb.Pages.Docs."render (overridable 1)"/1
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/diff.ex:387: Phoenix.LiveView.Diff.traverse/7
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/diff.ex:494: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
    (elixir 1.13.4) lib/enum.ex:2396: Enum."-reduce/3-lists^foldl/2-0-"/3
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/diff.ex:387: Phoenix.LiveView.Diff.traverse/7
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/diff.ex:494: anonymous fn/4 in Phoenix.LiveView.Diff.traverse_dynamic/7
    (elixir 1.13.4) lib/enum.ex:2396: Enum."-reduce/3-lists^foldl/2-0-"/3
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/diff.ex:387: Phoenix.LiveView.Diff.traverse/7
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/diff.ex:138: Phoenix.LiveView.Diff.render/3
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/channel.ex:803: Phoenix.LiveView.Channel.render_diff/3
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/channel.ex:439: Phoenix.LiveView.Channel.mount_handle_params_result/3
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/channel.ex:1003: Phoenix.LiveView.Channel.verified_mount/8
    (phoenix_live_view 0.17.11) lib/phoenix_live_view/channel.ex:59: Phoenix.LiveView.Channel.handle_info/2
    (stdlib 4.0.1) gen_server.erl:1120: :gen_server.try_dispatch/4

Had a crack at trying to fix this but can't fully grok how the links are being created. The site still runs fine, so not sure what's going on here

"Selected Packages" list always lists main Ash package even when it is not selected

Brief Description

Additionally, the pill for Ash doesn't reflect the version that may be selected as an active package.

Steps to reproduce the bug

  • Visit docs page of ash-hq https://www.ash-hq.org/docs/guides/ash/latest/tutorials/get-started
  • Edit "Selected packages" and set Ash to "hidden"
  • ash | 2.4.2 still appears in sidebar as a selected package (even though it is not)
  • Edit "Selected packages" and set Ash to a version that isn't latest or 2.4.2
  • ash | 2.4.2 still appears in sidebar as a selected package

Docs and sidebar partially hidden when URL includes certain fragment identifiers

Brief Description

Certain links, such as: https://ash-hq.org/docs/guides/ash/latest/topics/aggregates#custom-aggregates-in-the-query cause the top of the docs and sidebar to be hidden behind the top-bar.

Steps to reproduce the bug

click: https://ash-hq.org/docs/guides/ash/latest/topics/aggregates#custom-aggregates-in-the-query
Scroll to top
Notice the <h1> isn't visible.
Notice the top of the sidebar isn't visible, so you can't toggle the visible packages until you refresh the page.

Context

image

image

Search box usability issue

This is debatable but this has tripped me up many times so far.

  1. Search for anything using the search bar.
  2. Click any of the links, which takes you to that page and dismisses the search bar.
  3. Click the search bar again, the previously-entered search term is still entered in the box and the cursor is at the end of that string as if you were going to continue typing at the end of that term.

I generally expect to be able to click a search bar and start typing a new search term. E.g., if I search for limit and then view the results, then some time later I come back to the same tab in my browser and want to search for, say, constraints and my instinct is to click the search bar and start typing constraints but with the current behavior this results in limitconstraints in the search bar.

I can see it being helpful to keep the same search results for the "hmm that result wasn't helpful, let me try one of the other results", so maybe a compromise would be to bring up the modal with the previous text but have the text highlighted so that if the user starts typing, it replaces the existing text by default?

Ash autocomplete plugin install doc bug?

I'm unsure if there's another unmentioned step to install the autocomplete vscode plugin, or if there's no changes needed if you add the ash dependency (in which case, why should it be called out again here?)

image

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.