Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

画像アップロード完了前に投稿すると画像が添付されないのは直感的じゃない気がする #135

Open
cffnpwr opened this issue Apr 13, 2023 · 9 comments · Fixed by #136
Assignees
Labels
packages/frontend Client side specific issue/PR

Comments

@cffnpwr
Copy link
Collaborator

cffnpwr commented Apr 13, 2023

Summary

  • 画像アップロードが終わるまで投稿できない状態にするのが一番簡単かもしれない
  • 見た目上は投稿されていても裏でアップロード完了まで待つのがユーザーとしては嬉しい
@cffnpwr cffnpwr self-assigned this Apr 13, 2023
@taiyme taiyme self-assigned this Apr 14, 2023
@cffnpwr
Copy link
Collaborator Author

cffnpwr commented Apr 16, 2023

どうやらよいやみで実装されたっぽい

@taiyme
Copy link
Owner

taiyme commented Apr 16, 2023

TmsPostFormではこういう実装にした

import { v4 as uuid } from 'uuid';

let fetchingList = $ref<string[]>([]);

const fetchingWrapper = <T>(prom: Promise<T>): Promise<T> => {
  const id = uuid();
  fetchingList.push(id);

  prom.finally(() => {
    fetchingList = fetchingList.filter(fid => fid !== id);
  });

  return prom;
};

const fetching = $computed<boolean>(() => fetchingList.length !== 0);
// 画像のアップロード
fetchingWrapper(uploadFile(file));
// ノートの取得
fetchingWrapper(os.api('notes/show', { noteId }));

@cffnpwr
Copy link
Collaborator Author

cffnpwr commented Apr 16, 2023

ふむ

@taiyme
Copy link
Owner

taiyme commented Apr 16, 2023

で、fetching === trueならcanPostをfalseにすればいい

@cffnpwr
Copy link
Collaborator Author

cffnpwr commented Apr 16, 2023

rca-fedi@30cfe19
なんかよいやみでは裏でアップロードをしているっぽい

@taiyme
Copy link
Owner

taiyme commented Apr 16, 2023

キューに追加された状態でクライアントを閉じたら投稿されなくなってしまうのであまりしたくない

@cffnpwr
Copy link
Collaborator Author

cffnpwr commented Apr 16, 2023

それはそう

@cffnpwr
Copy link
Collaborator Author

cffnpwr commented Apr 16, 2023

アップロード完了まで投稿できない仕様が無難やな

@taiyme
Copy link
Owner

taiyme commented Apr 16, 2023

投稿されなくなるどころか、失敗したらその内容が消失してしまう

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
packages/frontend Client side specific issue/PR
Projects
None yet
2 participants