diff --git a/aicard-web-oauth/src/App.tsx b/aicard-web-oauth/src/App.tsx
index 8a37b5c..03232a0 100644
--- a/aicard-web-oauth/src/App.tsx
+++ b/aicard-web-oauth/src/App.tsx
@@ -720,6 +720,29 @@ function App() {
}
};
+ // OAuth実行関数
+ const executeOAuth = async () => {
+ if (!handleInput.trim()) {
+ alert('Please enter your Bluesky handle first');
+ return;
+ }
+ try {
+ await atprotoOAuthService.initiateOAuthFlow(handleInput);
+ } catch (err) {
+ console.error('OAuth failed:', err);
+ alert('認証の開始に失敗しました。再度お試しください。');
+ }
+ };
+
+ // ユーザーハンドルからプロフィールURLを生成
+ const generateProfileUrl = (handle: string, did: string): string => {
+ if (handle.endsWith('.syu.is')) {
+ return `https://web.syu.is/profile/${did}`;
+ } else {
+ return `https://bsky.app/profile/${did}`;
+ }
+ };
+
// OAuth callback is now handled by React Router in main.tsx
console.log('=== APP.TSX URL CHECK ===');
console.log('Full URL:', window.location.href);
@@ -737,18 +760,7 @@ function App() {
{!user ? (
@@ -877,22 +895,6 @@ function App() {
Comments
-
-
-
-
{comments.length === 0 ? (
No comments yet
@@ -909,7 +911,14 @@ function App() {
{record.value.author?.displayName || record.value.author?.handle || 'unknown'}
-
@{record.value.author?.handle || 'unknown'}
+
+ @{record.value.author?.handle || 'unknown'}
+
{new Date(record.value.createdAt).toLocaleString()}
@@ -929,7 +938,7 @@ function App() {
{record.value.text}
- URI: {record.uri}
+ {record.uri}
))
diff --git a/run.zsh b/run.zsh
index 14fbbe6..08af257 100755
--- a/run.zsh
+++ b/run.zsh
@@ -38,9 +38,9 @@ function _oauth_build() {
export VITE_OAUTH_REDIRECT_URI="https://log.syui.ai/oauth/callback"
npm run build
- #npm run preview
cp -rf dist/* $d/my-blog/static/
#cp -rf dist/index.html $d/my-blog/public/
+ #npm run preview
}
function _server_comment() {