- Created new oauth_new directory with clean OAuth implementation - Added 4-tab interface: Lang, Comment, Collection, User Comments - Implemented OAuth authentication with @atproto/oauth-client-browser - Added comment posting functionality with putRecord - Added proper PDS detection and error handling - Skipped placeholder users to prevent errors - Built comprehensive documentation (README.md, DEVELOPMENT.md) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
709 B
JavaScript
33 lines
709 B
JavaScript
import { useState, useEffect } from 'react'
|
|
|
|
export function usePageContext() {
|
|
const [pageContext, setPageContext] = useState({
|
|
isTopPage: true,
|
|
rkey: null,
|
|
url: null
|
|
})
|
|
|
|
useEffect(() => {
|
|
const pathname = window.location.pathname
|
|
const url = window.location.href
|
|
|
|
// Extract rkey from URL pattern: /posts/xxx or /posts/xxx.html
|
|
const match = pathname.match(/\/posts\/([^/]+)\/?$/)
|
|
if (match) {
|
|
const rkey = match[1].replace(/\.html$/, '')
|
|
setPageContext({
|
|
isTopPage: false,
|
|
rkey,
|
|
url
|
|
})
|
|
} else {
|
|
setPageContext({
|
|
isTopPage: true,
|
|
rkey: null,
|
|
url
|
|
})
|
|
}
|
|
}, [])
|
|
|
|
return pageContext
|
|
} |