Skip to content

Commit 77e572f

Browse files
committed
Catch paper planes flying by
1 parent 49227fa commit 77e572f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+224
-146
lines changed

src/Client/AppId.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ instance Show ClientAppId where
4040
show = case _ of
4141
Im"im-app-id"
4242
Profile"profile-app-id"
43-
Settings -> "settings-app-id"
43+
Settings "settings-app-id"
4444
Feedback"feedback-app-id"
4545
Experiments"experiments-app-id"
4646
KarmaPrivileges"karma-privileges-app-id"

src/Client/Experiments/Update.purs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,26 @@ update model =
5151
AfterThrowPlane id → afterThrowPlane id model
5252
ResizeMessageInput event → SIR.resizeInputFrom event model
5353
TogglePaperPlaneSection section → togglePaperPlaneSection section model
54-
DisplayFlyingPaperPlanes planes -> displayFlyingPaperPlanes planes model
54+
DisplayFlyingPaperPlanes planes → displayFlyingPaperPlanes planes model
55+
CatchPaperPlane id → catchPaperPlane id model
56+
AfterCatchPlane id → afterCatchPlane id model
57+
58+
afterCatchPlane Int ExperimentsModel ExperimentsModel /\ (Array (Aff (Maybe ExperimentsMessage)))
59+
afterCatchPlane id model =
60+
model
61+
{ paperPlane = model.paperPlane
62+
{ loading = false
63+
, flyingBy = DA.filter ((_ /= id) <<< _.id) model.paperPlane.flyingBy
64+
, caught = ((SU.fromJust $ DA.find ((_ == id) <<< _.id) model.paperPlane.flyingBy) { status = Caught }) : model.paperPlane.caught
65+
}
66+
} /\ []
67+
68+
catchPaperPlane Int ExperimentsModel ExperimentsModel /\ (Array (Aff (Maybe ExperimentsMessage)))
69+
catchPaperPlane id model = model { paperPlane = model.paperPlane { loading = true } } /\ [ setIt ]
70+
where
71+
setIt = do
72+
void <<< CCN.silentResponse $ request.experiments.catch { body: { id } }
73+
pure <<< Just $ AfterCatchPlane id
5574

5675
displayFlyingPaperPlanes Array PaperPlane ExperimentsModel ExperimentsModel /\ (Array (Aff (Maybe ExperimentsMessage)))
5776
displayFlyingPaperPlanes planes model = model { paperPlane = model.paperPlane { flyingBy = planes } } /\ []
@@ -60,10 +79,10 @@ togglePaperPlaneSection ∷ PaperPlaneSection → ExperimentsModel → Experimen
6079
togglePaperPlaneSection section model = model { paperPlane = model.paperPlane { section = section } } /\ effects
6180
where
6281
fetch = do
63-
r ← CCN.silentResponse $ request.experiments.flying { }
82+
r ← CCN.silentResponse $ request.experiments.flying {}
6483
pure <<< Just $ DisplayFlyingPaperPlanes r
6584
effects
66-
| model.paperPlane.section /= section && section == ShowFlyingBy && DA.null model.paperPlane.flyingBy = [fetch]
85+
| model.paperPlane.section /= section && section == ShowFlyingBy && DA.null model.paperPlane.flyingBy = [ fetch ]
6786
| otherwise = []
6887

6988
setPlaneMessage String ExperimentsModel ExperimentsModel /\ (Array (Aff (Maybe ExperimentsMessage)))

src/Client/Feedback/Update.purs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ update model =
2323
case _ of
2424
ToggleVisibility modal → toggleVisibility modal model
2525
SetComments input → setComments input model
26-
BeforeSetScreenshot event -> beforeSetScreenshot event model
26+
BeforeSetScreenshot event beforeSetScreenshot event model
2727
SetScreenshot base64 → setScreenshot base64 model
2828
SendFeedback → sendFeedback model
2929
AfterSendFeedback status → afterSendFeedback status model
3030

3131
toggleVisibility ScreenModal FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
3232
toggleVisibility modal model = model { visible = modal == ShowFeedback } /\ []
3333

34-
setComments :: String -> FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
34+
setComments String FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
3535
setComments input model =
3636
model
3737
{ comments = input
@@ -44,13 +44,13 @@ beforeSetScreenshot event model = model /\ [ before ]
4444
CCF.compressImage feedbackAppId event false (\_ _ b → SetScreenshot b)
4545
pure Nothing
4646

47-
setScreenshot :: String -> FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
47+
setScreenshot String FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
4848
setScreenshot base64 model =
4949
model
5050
{ screenshot = Just base64
5151
} /\ []
5252

53-
sendFeedback :: FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
53+
sendFeedback FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
5454
sendFeedback model = case DS.trim model.comments of
5555
"" → model { feedbackStatus = Just NoComments } /\ []
5656
trimmed → model { loading = true } /\ [ send trimmed ]
@@ -61,7 +61,7 @@ sendFeedback model = case DS.trim model.comments of
6161
Right _ → pure <<< Just <<< AfterSendFeedback $ Just Success
6262
Left err → pure <<< Just <<< AfterSendFeedback <<< Just <<< Failure $ SN.errorMessage err
6363

64-
afterSendFeedback :: Maybe RequestStatus -> FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
64+
afterSendFeedback Maybe RequestStatus FeedbackModel FeedbackModel /\ Array (Aff (Maybe FeedbackMessage))
6565
afterSendFeedback status model = case status of
6666
Nothing → model { feedbackStatus = Nothing } /\ []
6767
Just (Failure _) → model { loading = false, feedbackStatus = Request <$> status } /\ []

src/Client/File.purs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import Web.HTML.HTMLInputElement as WHI
2626

2727
foreign import fileSize String Int
2828

29-
compressImage forall message. AppId ClientAppId message Event Boolean -> (Int Int String message) Aff Unit
29+
compressImage message. AppId ClientAppId message Event Boolean (Int Int String message) Aff Unit
3030
compressImage appId event preserveSize message = EC.liftEffect do
3131
maybeFileList ← WHI.files input
3232
compressImageFromFileList maybeFileList appId preserveSize message
@@ -35,7 +35,7 @@ compressImage appId event preserveSize message = EC.liftEffect do
3535
target ← WEE.target event
3636
WHI.fromEventTarget target
3737

38-
compressImageFromFileList message. Maybe FileList AppId ClientAppId message Boolean -> (Int Int String message) Effect Unit
38+
compressImageFromFileList message. Maybe FileList AppId ClientAppId message Boolean (Int Int String message) Effect Unit
3939
compressImageFromFileList maybeFileList appId preserveSize message =
4040
case maybeFileList >>= WFL.item 0 of
4141
Nothing → pure unit
@@ -46,7 +46,7 @@ foreign import compressImage_ ∷ EffectFn3 File Boolean (Int → Int → String
4646
triggerFileSelect Element Effect Unit
4747
triggerFileSelect = WHH.click <<< SU.fromJust <<< WHH.fromElement
4848

49-
setUpFileChange message. Warn (Text "Deprecated") => (Int Int String message) Element AppId ClientAppId message Effect Unit
49+
setUpFileChange message. Warn (Text "Deprecated") (Int Int String message) Element AppId ClientAppId message Effect Unit
5050
setUpFileChange message input appId = do
5151
CCD.addEventListener input change $ \_ → do
5252
let htmlInput = SU.fromJust $ WHI.fromElement input

src/Client/Im/ModalsMenu.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import Effect.Class (liftEffect)
2121
import Effect.Class as EC
2222
import Flame as F
2323
import Flame.Subscription.Unsafe.CustomEvent as FS
24-
import Shared.Html(Html(..))
24+
import Shared.Html (Html(..))
2525
import Safe.Coerce as SC
2626
import Shared.Element (ElementId(..))
2727
import Shared.Im.Types (AfterLogout(..), ImMessage(..), ImModel, PostMode(..), RetryableRequest(..), ShowContextMenu(..))

src/Client/Im/Pwa.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ receiveMessageFromPush payload model = model { contacts = map update model.conta
115115
, recipient: message.recipientId
116116
, id: message.id
117117
, edited: false
118-
, reaction : Nothing
118+
, reaction: Nothing
119119
, content: message.content
120120
, date: message.date
121121
}

src/Client/Network.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ silentResponse aff = do
100100
defaultResponse r. Aff (ClientResponse r) Aff (Either ClientError r)
101101
defaultResponse aff = map (_.body <<< coerce) <$> aff
102102
where
103-
coerce :: Response r -> { body r, status HttpStatus, headers Headers }
103+
coerce Response r { body r, status HttpStatus, headers Headers }
104104
coerce = SC.coerce
105105

106106
logError e. Show e e Aff Unit

src/Client/Settings/Main.purs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Flame.Subscription as FS
1111
import Shared.Settings.Types (SettingsMessage(..))
1212
import Shared.Settings.View as SSV
1313
import Web.DOM.ParentNode (QuerySelector(..))
14+
1415
main Effect Unit
1516
main =
1617
void $ F.resumeMount (QuerySelector "#settings-edition") settingsAppId

src/Client/Settings/Update.purs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ update model message =
4545
SetChatBackground image → setChatBackground image model
4646
AfterSaveChatBackground url → afterSaveChatBackground url model
4747
TerminateAccount → terminateAccount model
48-
RemoveChatBackground -> removeChatBackground model
48+
RemoveChatBackground removeChatBackground model
4949
SaveChatBackground → saveChatBackground model
5050
ChangePrivacySettings → changePrivacySettings model
5151
ToggleVisibility modal → setIt (_ { visible = modal == ShowSettings }) model

src/Client/css/experiments.css

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,22 @@
9898
.paper-flown-message {
9999
word-wrap: break-word;
100100
overflow: auto;
101+
font-style: italic;
102+
}
103+
104+
.paper-catch {
105+
color: var(--merochat-green);
106+
margin-left: 10px;
107+
margin-bottom: 15px;
108+
}
109+
110+
.paper-catch:last-child {
111+
font-weight: bold;
112+
}
113+
114+
.paper-thrown-options {
115+
display: flex;
116+
justify-content: flex-end;
101117
}
102118

103119
@media (max-width:1279px) {
@@ -122,7 +138,8 @@
122138
width: auto;
123139
}
124140

125-
.paper-thrown-entry, .flying-by {
141+
.paper-thrown-entry,
142+
.flying-by {
126143
width: calc(100vw - 47px);
127144
}
128145
}

0 commit comments

Comments
 (0)