Skip to content

Commit 1a27ecd

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/npm_and_yarn-2c631a4876
2 parents e964135 + 8c896f5 commit 1a27ecd

File tree

12 files changed

+84
-70
lines changed

12 files changed

+84
-70
lines changed

app/components/RequestInvitationForm.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ const RequestInvitationForm: FC<RequestInvitationFormProps> = ({
6262
},
6363
onSuccess: ({ joinRequest }: { joinRequest: JoinRequest }) => {
6464
toast.success("invitation request sent!", {
65-
description: "we'll text you when you're invited :)",
65+
description: (
66+
<>you'll get a text from {user.name} when they're ready for you :)</>
67+
),
6668
});
6769
onJoinRequestCreated?.(joinRequest);
6870
},

app/helpers/routes/generated/SmallerUniversePostsRoutes.ts

Lines changed: 0 additions & 8 deletions
This file was deleted.

app/models/post.rb

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -198,16 +198,9 @@ def quoted_post? = quoted_post_id?
198198
.returns(NotificationMessage)
199199
end
200200
def notification_message(recipient:)
201-
recipient = if recipient.nil? || recipient.is_a?(Friend)
202-
recipient
203-
else
204-
raise "Invalid recipient for #{self.class}} notification: " \
205-
"#{recipient.inspect}"
206-
end
207-
208201
title = "new #{type.humanize(capitalize: false)}"
209202
author = author!
210-
unless recipient
203+
unless recipient.is_a?(Friend)
211204
title += " from #{author.name}"
212205
end
213206
body = ""
@@ -220,17 +213,20 @@ def notification_message(recipient:)
220213
truncated_body_text
221214
end
222215
url_helpers = Rails.application.routes.url_helpers
223-
NotificationMessage.new(
224-
title:,
225-
body:,
226-
image: cover_image,
227-
target_url: url_helpers.user_url(
216+
target_url = case recipient
217+
when Friend
218+
url_helpers.user_url(
228219
author,
229-
friend_token: recipient&.access_token,
220+
friend_token: recipient.access_token,
230221
post_id: id,
231222
trailing_slash: true,
232-
),
233-
)
223+
)
224+
when User
225+
url_helpers.local_universe_url(post_id: id)
226+
else
227+
url_helpers.universe_url(post_id: id, trailing_slash: true)
228+
end
229+
NotificationMessage.new(title:, body:, image: cover_image, target_url:)
234230
end
235231

236232
sig { params(recipient: Friend).returns(String) }
@@ -359,7 +355,7 @@ def hidden_from
359355
# == Notifications
360356
sig { returns(T::Boolean) }
361357
def send_notifications?
362-
user_created? && friend_ids_to_notify.present?
358+
user_created? && (friend_ids_to_notify.present? || visibility == :public)
363359
end
364360

365361
sig { returns(Friend::PrivateAssociationRelation) }
@@ -387,15 +383,22 @@ def create_notifications!
387383
.select(:id).find_each do |friend|
388384
notifications.create!(recipient: friend, push_delay: NOTIFICATION_DELAY)
389385
end
390-
if visibility == :public
391-
notifications.create!(recipient: nil, push_delay: NOTIFICATION_DELAY)
392-
end
393386
friends
394387
.text_only
395388
.where.not(id: text_blasts.select(:friend_id))
396389
.find_each do |friend|
397390
text_blasts.create!(friend:, send_delay: NOTIFICATION_DELAY)
398391
end
392+
if visibility == :public
393+
notifications.find_or_create_by!(recipient: nil) do |notification|
394+
notification.push_delay = NOTIFICATION_DELAY
395+
end
396+
User.subscribed_to_public_posts.find_each do |user|
397+
notifications.find_or_create_by!(recipient: user) do |notification|
398+
notification.push_delay = NOTIFICATION_DELAY
399+
end
400+
end
401+
end
399402
end
400403

401404
# sig { void }

app/models/user.rb

Lines changed: 31 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ def page_icon_image
124124
},
125125
}
126126

127+
# == Scopes
128+
scope :subscribed_to_public_posts, -> {
129+
where(handle: handles_subscribed_to_public_posts)
130+
}
131+
127132
# == Methods
128133
sig { returns(T::Boolean) }
129134
def admin?
@@ -142,27 +147,21 @@ def last_active_at
142147
notifications_last_cleared_at || created_at
143148
end
144149

145-
sig { returns(T::Boolean) }
146-
def smutty_themes_allowed?
147-
self.class.handles_allowing_smutty_themes.include?(handle)
150+
sig { returns(T::Set[Symbol]) }
151+
def feature_flags
152+
self.class.feature_flags_for(handle)
148153
end
149154

150-
sig { returns(T::Array[Symbol]) }
155+
sig { returns(T::Set[Symbol]) }
151156
def supported_features
152-
features = []
157+
features = feature_flags
153158
if push_registrations.any? &&
154159
last_active_at >= ENCOURAGEMENTS_AVAILABLE_SINCE
155160
features << :encouragements
156161
end
157162
if posts.count >= MIN_POST_COUNT_FOR_SEARCH
158163
features << :search
159164
end
160-
if smutty_themes_allowed?
161-
features << :smutty_themes
162-
end
163-
# if admin?
164-
# features << :stickers
165-
# end
166165
features
167166
end
168167

@@ -231,12 +230,28 @@ def self.find_by_phone_number(phone_number)
231230
find_by(phone_number:)
232231
end
233232

233+
sig { params(handle: String).returns(T::Set[Symbol]) }
234+
def self.feature_flags_for(handle)
235+
@feature_flags ||= Hash.new do |hash, key|
236+
hash[key] = if (flags = Rails.application.credentials
237+
.dig(:feature_flags, key))
238+
flags.map(&:to_sym).to_set
239+
else
240+
Set.new
241+
end
242+
end
243+
@feature_flags[handle]
244+
end
245+
234246
sig { returns(T::Set[String]) }
235-
def self.handles_allowing_smutty_themes
236-
@handles_allowing_smutty_themes ||= scoped do
237-
handles = Rails.application.credentials
238-
.smutty_themes
239-
&.allowed_user_handles || []
247+
def self.handles_subscribed_to_public_posts
248+
@handles_subscribed_to_public_posts ||= scoped do
249+
all_flags = Rails.application.credentials.feature_flags or next Set.new
250+
handles = all_flags.filter_map do |handle, flags|
251+
if flags.include?("public_post_notifications")
252+
handle
253+
end
254+
end
240255
handles.to_set
241256
end
242257
end

app/types/Feature.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
type Feature = "encouragements" | "search" | "smutty_themes";
1+
type Feature =
2+
| "encouragements"
3+
| "search"
4+
| "smutty_themes"
5+
| "public_post_notifications";
26

37
export default Feature;

bin/boot_docker

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ if [ "$STATUS" != "0" ]; then
1717
exit 1
1818
fi
1919

20-
echo "Waiting for Docker to boot..." >&2
2120
ATTEMPTS=1
2221
while ! docker info > /dev/null 2>&1; do
2322
if [ "$ATTEMPTS" -ge "$MAX_ATTEMPTS" ]; then

config/credentials.yml.enc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
+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--6fp6xdzrlG4uXpjS--QnzDQVcI9kkpPPthP/n9Dw==
1+
W9YKvoopeCt5Qey3JhozwW2TC5XVrgLDdBRDYwYbHP9fNwAV78IuZE5refnMXUs/qNdhMdcAoYmRhKuOYl0lyI66O+Rz1vigJPIEbKeFewVxbDtD9U2/mS9kIA9lO8zl0ampDJDDaEE4j6R0w+5GVMma2RDDO8maFvftNPY4u0PgVEr+zhO3vkykNehsDT5wA5rNManWD07iLFhErXBcJgDTZL2H8dHm5FKA0HzQfp+agdSJA/+L6EPIUs8v/jkdirfbpIcgSOGS7ao2FiQsf4Jv7kuysryjmITespIvIdv4hy/jK77qjJFi/o7DbID4dUTRif/gsqqQI6paA0htKs0JHDcYCZXR4kAcYyIF2IRNYvpkRwpFexkV5i9OW50N2SXEZY55Ir8HCrq6vcGU5sfDgFgxyEmL6B3JYkL/15EoU65yZtq3te4eEDUIfYNO6Y7CvwHb5YxurD3mzuqeFNiTqicsSOnmImgk8O2+ECFu5KE/P0F2jaBCY9j+g/RXWlcCNtHsYdj/nrI9pa7jEUXjo/BynmP4Bfn+qzdFwUUkDj5GInA5NcElEaJnq6MYbzlA5xet6y4F/mOWn6nC0o75S4mzH78d0bq7S4jrUxPfPtfaG7N5sezrzvrH9IeapZsqqgyL09lvEk6y5J0O+vTx2oIYB4MMBsNL6FP7qKOXh5zho1PNxD6V1yziZFyMw+O6xsU+5sXkO38QykzGiZ3RIaEVnmaXjahq06ZiRPqrN7HLF4OzMsA5pqDGpeBwVYO28PKVT68pTocslRQpOCnhPX2DwXklLjD1hVi8v7yerYKRMPG849c1XG9t7FrIQaK/A/US9sR4NHIcmAyn0iKHWVoP3arMorwBVjQAvOrQ6M2jLzUGQCC6Urlar/tpM7160NTb2M29lhQ9vB3UKSp3Y5smhWcrlCVn4K7+DQuYfk/EnnS9kVgCELY2aUB8QPgJFoifNDYoWkoFI3b5wzJR8CxY6qenE/VSnUQm0r2RfZZNgSNVM+U9pm6Bm9jiPJ2WDa4WgecEg1icp423WYTpyXkfbiq/h4KWZBdFYRwngtpSkZXpu9s52NP49ATnu2JPLxg9rgva1V5ZAELlgoiXsyh1pbZI60Ctv+cDK+6L0hy/mjxwxcw3liqI6AZ+WjAoeV+Bw/lTLl/4DrSXAru/Xw5fr8VELFH9Ln8dEbTagVqE4wLUSS/lIDiyq3EN57eyb00SCrZldMDnHDfvuLnFhFqtDoVBcZx418Ml4yJiK3RtYdtPsMz0PgsT7zgc4LMT2FC5zm6cEF9J4OsA+RW1aBJHFZ+f2E/5gN9seqliAvYetuQrPv9iG3TjORAcNhFs5mFfzM2SzKH3NnvNMfRSI06ohvt4BJMTuAshvZmGByKE866MD6tErB3yy0V+8IvMHC5Ks2rMjcVM0ysNx02B4FG6vq0ZwTtkyyLlwDD1GfF2B4HabbkHOBVN/NljqMeY/ir+FBMVBunoQBKu5MzEHzTU/IKO4fwxNdYJgLovFF1wrm+XMAfmdpeICL0iBJkGQ1xZQT1S9yxP+KO8rreAYb24qk0dHwYyPG5jTlnSojQqf7oBQc1fuz0x5eyufOaf3+CCJ/dey4Ko1LSbwCq8dyFqdpQRG84BMFZaGX3gQpvJBWhgMYG1hHj93wDM/0Dl4YIS7b5Y4BpyhYuW/4ey7FqpHaf3uv6kdji+GPZSkxA4klBvD+2jpnDrXipHwCe9nWlKfBgRylc2ID9ujywJFY+FedLxU2gtXyMT8WKhW3kk6MDntEYQkwkRMJBKQNZk9n9Ktv2BD8q1KHM5aIdchB7mdAHuP3Q14e9jvwHyAqOn7cp8MEOaLU/VKXdNwmYa193ETJCBLW6JN9xlnbc4U+lioaOA+sATLvFjOFsrseWTcIyLTfKEw7AKo9s5h1bKKEkfoMeVgBHselMqssVlJrsgXVHpkYLyG4oTVUJl5zgV/sZCXr2yvTdEItElnQ09vIpDPkLpKYdnyB9/I5joaQyRU1LXUDPFGSZAhdqiAjYVx7+Gp5KsTKh1LcezE1Aq8cdONRa9xg2U5XmRs2mr84LtuqVrm+Q9CNgvWFPMW3sFAovMh+IB3KuSMf+24nVFM/eixCPygGhqDIZpwtg/FvNrIYq8h94kchtaP0lDOOdN4DoaQK1I6M3MWVVjq+THULqLqZ4crorgUyLoAnVsxdrwQCwF4FE=--EXV/LRL7GCmjn25f--l/ibMfkp33QzwpXPhksJlg==
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
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--kG6CC+UYDu87yIxS--pRIqQSM1JqOYHC9p4hK4DA==
1+
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--DJZQdMBptnYFeaVx--2lD1bhGVvoZiQllbP+1PpQ==

sorbet/rbi/dsl/application_serializer.rbi

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sorbet/rbi/dsl/associated_friend_serializer.rbi

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)