Repository navigation
加新手导览(问号按钮) - #5
Merged
Merged
Conversation
TopBar 右上角新增一个"?"图标,点开是个弹窗,简单讲清楚每个按钮是 干什么的:地图点位、搞笑/地图模式切换、搜索、报新厕所、定位、写评价、 我的。纯静态内容,手动点开看,不会自动弹出打扰人。 跟"我的"页面之前踩过的坑一样,这个弹窗从 TopBar 里弹出来会被 TopBar 自己的层叠上下文限制住,所以也用了 createPortal 挂到 body 上。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
厕所详情页新增"上报厕所不存在"入口,四种提交方式:厕所不存在、 店家关闭(都是一键提交)、其他(展开输入框填具体情况)、以及 "不填理由直接上报"——用户可能就是路过觉得不对劲,说不出具体原因, 不该逼着他们编一个,所以 reason 允许为空。 跟举报评价内容分开建表(toilet_reports):理由体系完全不一样, 硬塞进 reports 表会让两边的 reason 枚举互相污染。 审核照旧不做管理后台(CLAUDE.md 第 2 节),加了个 flagged_toilets 视图,人工在 Supabase Studio 里看、决定删不删点位。跟 flagged_reviews 一样撤掉了 anon/authenticated 的读权限。 三条提交路径本地都实测过,数据正确落到视图里。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Deploying pooping with
|
| Latest commit: |
495dbdb
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://c357f399.pooping-bwi.pages.dev |
| Branch Preview URL: | https://poo-poo-monster.pooping-bwi.pages.dev |
美国不少商家厕所要密码(消费后给小票或店员口头告知),用户记不住。 厕所详情页新增「门锁密码」区块,能存、能改、能删,带明显的 「只有你自己看得到」标识。 **刻意不公开给其他用户**:公开等于帮人白嫖商家,商家一改密码这功能 就废了;而且密码常变,公开的旧密码会误导人。所以定位是「我自己的 备忘」,不是 UGC 内容。RLS 四条策略全锁在 auth.uid(),实测过用别人 身份查 REST API 返回空数组。 存和改是同一个动作(后端 upsert + 表上唯一约束),前端不区分, 用户只看到一个输入框。匿名身份也能用,不强制登录——匿名升级不换 user.id,登录后数据自动跟着账号走。 顺手修了个真 bug:加了这个区块后页面变长,底部 pb-24 不够盖过固定的 「写条锐评」栏(65px + 安全区),滚到底时最后一块内容被压住点不到。 改成 pb-32 并加注释说明原因。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
切到 INTL 时界面自动跟着变英文,切回 CN 变中文——面向美国市场时 不该让用户先看到一屏中文再自己找语言按钮。 但只在用户**从没手动选过语言**时生效:手动点过语言按钮(或带过 ?lang= 参数)就是明确表态,之后切地图不再覆盖他的选择。判断依据是 localStorage 里有没有写入过 locale——自动建议不写,手动选择才写。 首次进来也对齐一次:地区可能是按时区/浏览器语言自动猜的,语言要跟上。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
原来一律按主键 id upsert,但云端可能已经导过同一批 OSM 点位—— id 不同、osm_id 相同,直接撞 toilets_osm_id_key 唯一约束,整个同步 崩掉。这次推 1766 个点位时踩到了。 改成按来源分两路:OSM 点位认 osm_id,用户自己报的点位认 id。 关键细节:OSM 那路**不能带本地 id 过去**。带了的话 upsert 会把远端 已有行的主键改成本地 id,挂在旧 id 上的评价、门锁密码全部变孤儿。 所以剥掉 id,让远端保留自己的,再建一张本地 id → 远端 id 的映射表, 名称提案的外键和 refresh_voted_name 都走这张表翻译。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
用户报的:上报后点位出现偏移。实测最坏偏 176px ≈ 719 米。 根因:地图相机带着 bottom padding(底部面板盖住半个屏幕,点位要挤到 上半部显示),相机中心在屏幕上比容器几何中心高一大截。而选点准星画在 容器正中间 —— 用户对准的位置和 map.getCenter() 返回的根本不是一个点。 同一个根因还有第二个受害路径:搜地址跳转用 moveTo,目标落在相机中心, 准星同样够不着,搜完直接确认就会存错地方。 三处一起修: 1. 准星改画在相机中心上(盒子扣掉 bottomInset 再居中),实测误差 从 176px 降到 0px。这是根治:getCenter / moveTo / 用户看到的 位置三者从此指同一个点。 2. 选点模式下 bottomInset 改用矮控制栏的高度 —— 那时候大面板本来 就收起来了,还按面板高度留 376px 是错的。 3. confirmPin 改成读准星圆环的真实屏幕位置反算坐标(新增 MapHandle.unprojectClientPoint),以后 CSS 再动也不会错位。 同一地图位置下修复前后差 0.00324° ≈ 360 米。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TopBar 右上角新增一个"?"图标,点开是个弹窗,简单讲清楚每个按钮是
干什么的:地图点位、搞笑/地图模式切换、搜索、报新厕所、定位、写评价、
我的。纯静态内容,手动点开看,不会自动弹出打扰人。
跟"我的"页面之前踩过的坑一样,这个弹窗从 TopBar 里弹出来会被 TopBar
自己的层叠上下文限制住,所以也用了 createPortal 挂到 body 上。