fix interaction-requests urls, router

This commit is contained in:
f0x 2024-11-06 14:10:29 +01:00
parent 884e03b4c1
commit 898e2f9f60
5 changed files with 37 additions and 34 deletions

View file

@ -1780,7 +1780,7 @@ func (suite *InternalToFrontendTestSuite) TestStatusToAPIStatusPendingApproval()
"muted": false, "muted": false,
"bookmarked": false, "bookmarked": false,
"pinned": false, "pinned": false,
"content": "<p>Hi <span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span>, can I reply?</p><hr><p><i lang=\"en\"> Note from localhost:8080: This reply is pending your approval. You can quickly accept it by liking, boosting or replying to it. You can also accept or reject it at the following link: <a href=\"http://localhost:8080/settings/user/interaction_requests/01J5QVXCCEATJYSXM9H6MZT4JR\" rel=\"noreferrer noopener nofollow\" target=\"_blank\">http://localhost:8080/settings/user/interaction_requests/01J5QVXCCEATJYSXM9H6MZT4JR</a>.</i></p>", "content": "<p>Hi <span class=\"h-card\"><a href=\"http://localhost:8080/@1happyturtle\" class=\"u-url mention\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">@<span>1happyturtle</span></a></span>, can I reply?</p><hr><p><i lang=\"en\"> Note from localhost:8080: This reply is pending your approval. You can quickly accept it by liking, boosting or replying to it. You can also accept or reject it at the following link: <a href=\"http://localhost:8080/settings/user/interaction-requests/01J5QVXCCEATJYSXM9H6MZT4JR\" rel=\"noreferrer noopener nofollow\" target=\"_blank\">http://localhost:8080/settings/user/interaction-requests/01J5QVXCCEATJYSXM9H6MZT4JR</a>.</i></p>",
"reblog": null, "reblog": null,
"application": { "application": {
"name": "superseriousbusiness", "name": "superseriousbusiness",

View file

@ -214,8 +214,8 @@ func (c *Converter) pendingReplyNote(
// Build the settings panel URL at which the user // Build the settings panel URL at which the user
// can view + approve/reject the interaction request. // can view + approve/reject the interaction request.
// //
// Eg., https://example.org/settings/user/interaction_requests/01J5QVXCCEATJYSXM9H6MZT4JR // Eg., https://example.org/settings/user/interaction-requests/01J5QVXCCEATJYSXM9H6MZT4JR
settingsURL = proto + "://" + host + "/settings/user/interaction_requests/" + intReq.ID settingsURL = proto + "://" + host + "/settings/user/interaction-requests/" + intReq.ID
) )
var note strings.Builder var note strings.Builder

View file

@ -18,9 +18,13 @@
*/ */
import React from "react"; import React from "react";
import { Redirect, Route, Router, Switch } from "wouter";
import { BaseUrlContext, useBaseUrl } from "../../../lib/navigation/util";
import InteractionRequestDetail from "./detail";
import InteractionRequestsSearchForm from "./search"; import InteractionRequestsSearchForm from "./search";
export default function InteractionRequests() { function InteractionRequests() {
return ( return (
<div className="interaction-requests-view"> <div className="interaction-requests-view">
<div className="form-section-docs"> <div className="form-section-docs">
@ -34,3 +38,25 @@ export default function InteractionRequests() {
</div> </div>
); );
} }
/**
* - /settings/users/interaction-requests/search
* - /settings/users/interaction-requests/{reqId}
*/
export default function InteractionRequestsRouter() {
const parentUrl = useBaseUrl();
const thisBase = "/interaction-requests";
const absBase = parentUrl + thisBase;
return (
<BaseUrlContext.Provider value={absBase}>
<Router base={thisBase}>
<Switch>
<Route path="/search" component={InteractionRequests} />
<Route path="/:reqId" component={InteractionRequestDetail} />
<Redirect to="/search" />
</Switch>
</Router>
</BaseUrlContext.Provider>
);
}

View file

@ -26,7 +26,7 @@ import React from "react";
* - /settings/user/emailpassword * - /settings/user/emailpassword
* - /settings/user/migration * - /settings/user/migration
*/ */
export default function UserMenu() { export default function UserMenu() {
return ( return (
<MenuItem <MenuItem
name="User" name="User"
@ -45,7 +45,7 @@ export default function UserMenu() {
/> />
<MenuItem <MenuItem
name="Interaction Requests" name="Interaction Requests"
itemUrl="interaction_requests" itemUrl="interaction-requests"
icon="fa-commenting-o" icon="fa-commenting-o"
/> />
<MenuItem <MenuItem

View file

@ -26,8 +26,7 @@ import UserMigration from "./migration";
import PostSettings from "./posts"; import PostSettings from "./posts";
import EmailPassword from "./emailpassword"; import EmailPassword from "./emailpassword";
import ExportImport from "./export-import"; import ExportImport from "./export-import";
import InteractionRequests from "./interactions"; import InteractionRequestsRouter from "./interactions";
import InteractionRequestDetail from "./interactions/detail";
/** /**
* - /settings/user/profile * - /settings/user/profile
@ -35,7 +34,7 @@ import InteractionRequestDetail from "./interactions/detail";
* - /settings/user/emailpassword * - /settings/user/emailpassword
* - /settings/user/migration * - /settings/user/migration
* - /settings/user/export-import * - /settings/user/export-import
* - /settings/users/interaction_requests * - /settings/users/interaction-requests
*/ */
export default function UserRouter() { export default function UserRouter() {
const baseUrl = useBaseUrl(); const baseUrl = useBaseUrl();
@ -52,33 +51,11 @@ export default function UserRouter() {
<Route path="/emailpassword" component={EmailPassword} /> <Route path="/emailpassword" component={EmailPassword} />
<Route path="/migration" component={UserMigration} /> <Route path="/migration" component={UserMigration} />
<Route path="/export-import" component={ExportImport} /> <Route path="/export-import" component={ExportImport} />
<InteractionRequestsRouter /> <Route path="/interaction-requests/*?" component={InteractionRequestsRouter} />
<Route><Redirect to="/profile" /></Route> <Redirect to="/profile" />
</Switch> </Switch>
</ErrorBoundary> </ErrorBoundary>
</Router> </Router>
</BaseUrlContext.Provider> </BaseUrlContext.Provider>
); );
} }
/**
* - /settings/users/interaction_requests/search
* - /settings/users/interaction_requests/{reqId}
*/
function InteractionRequestsRouter() {
const parentUrl = useBaseUrl();
const thisBase = "/interaction_requests";
const absBase = parentUrl + thisBase;
return (
<BaseUrlContext.Provider value={absBase}>
<Router base={thisBase}>
<Switch>
<Route path="/search" component={InteractionRequests} />
<Route path="/:reqId" component={InteractionRequestDetail} />
<Route><Redirect to="/search"/></Route>
</Switch>
</Router>
</BaseUrlContext.Provider>
);
}