fix: Redirect /orgs to default path (#2006)
				
					
				
			Fixes https://github.com/webrecorder/browsertrix/issues/2005 <!-- Fixes #issue_number --> ### Changes Redirects `/orgs` to user's default home page.
This commit is contained in:
		
							parent
							
								
									2b5f964c24
								
							
						
					
					
						commit
						97eac2b0e2
					
				| @ -108,8 +108,15 @@ export class App extends LiteElement { | ||||
|   } | ||||
| 
 | ||||
|   willUpdate(changedProperties: Map<string, unknown>) { | ||||
|     if (changedProperties.get("viewState") && this.viewState.route === "org") { | ||||
|       AppStateService.updateOrgSlug(this.viewState.params.slug || null); | ||||
|     if (changedProperties.has("viewState")) { | ||||
|       if (this.viewState.route === "orgs") { | ||||
|         this.navigate(this.orgBasePath); | ||||
|       } else if ( | ||||
|         changedProperties.get("viewState") && | ||||
|         this.viewState.route === "org" | ||||
|       ) { | ||||
|         AppStateService.updateOrgSlug(this.viewState.params.slug || null); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|  | ||||
| @ -2,7 +2,6 @@ import "./home"; | ||||
| 
 | ||||
| import(/* webpackChunkName: "sign-up" */ "./sign-up"); | ||||
| import(/* webpackChunkName: "log-in" */ "./log-in"); | ||||
| import(/* webpackChunkName: "orgs" */ "./orgs"); | ||||
| import(/* webpackChunkName: "org" */ "./org"); | ||||
| import(/* webpackChunkName: "crawls" */ "./crawls"); | ||||
| import(/* webpackChunkName: "join" */ "./invite/join"); | ||||
|  | ||||
| @ -1,75 +0,0 @@ | ||||
| import { localized, msg } from "@lit/localize"; | ||||
| import { customElement, property, state } from "lit/decorators.js"; | ||||
| 
 | ||||
| import type { APIPaginatedList } from "@/types/api"; | ||||
| import type { CurrentUser } from "@/types/user"; | ||||
| import { needLogin } from "@/utils/auth"; | ||||
| import type { AuthState } from "@/utils/AuthService"; | ||||
| import LiteElement, { html } from "@/utils/LiteElement"; | ||||
| import type { OrgData } from "@/utils/orgs"; | ||||
| 
 | ||||
| @localized() | ||||
| @customElement("btrix-orgs") | ||||
| @needLogin | ||||
| export class Orgs extends LiteElement { | ||||
|   @property({ type: Object }) | ||||
|   authState?: AuthState; | ||||
| 
 | ||||
|   @property({ type: Object }) | ||||
|   userInfo?: CurrentUser; | ||||
| 
 | ||||
|   @state() | ||||
|   private orgList?: OrgData[]; | ||||
| 
 | ||||
|   async firstUpdated() { | ||||
|     this.orgList = await this.getOrgs(); | ||||
|   } | ||||
| 
 | ||||
|   render() { | ||||
|     return html` | ||||
|       <div class="bg-white"> | ||||
|         <header | ||||
|           class="mx-auto box-border w-full max-w-screen-desktop px-3 py-4 md:py-8" | ||||
|         > | ||||
|           <h1 class="text-xl font-medium">${msg("Organizations")}</h1> | ||||
|         </header> | ||||
|         <hr /> | ||||
|       </div> | ||||
|       <main class="mx-auto box-border w-full max-w-screen-desktop px-3 py-4"> | ||||
|         ${this.orgList | ||||
|           ? this.renderOrgs() | ||||
|           : html` | ||||
|               <div class="my-24 flex items-center justify-center text-3xl"> | ||||
|                 <sl-spinner></sl-spinner> | ||||
|               </div> | ||||
|             `}
 | ||||
|       </main> | ||||
|     `;
 | ||||
|   } | ||||
| 
 | ||||
|   private renderOrgs() { | ||||
|     if (!this.orgList?.length) { | ||||
|       return html`<div class="rounded-lg border bg-white p-4 md:p-8">
 | ||||
|         <p class="text-center text-neutral-400"> | ||||
|           ${msg("You don't have any organizations.")} | ||||
|         </p> | ||||
|       </div>`;
 | ||||
|     } | ||||
| 
 | ||||
|     return html` | ||||
|       <btrix-orgs-list | ||||
|         .userInfo=${this.userInfo} | ||||
|         .orgList=${this.orgList} | ||||
|       ></btrix-orgs-list> | ||||
|     `;
 | ||||
|   } | ||||
| 
 | ||||
|   private async getOrgs() { | ||||
|     const data = await this.apiFetch<APIPaginatedList<OrgData>>( | ||||
|       "/orgs", | ||||
|       this.authState!, | ||||
|     ); | ||||
| 
 | ||||
|     return data.items; | ||||
|   } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user