@ -6656,7 +6656,7 @@
|
|||||||
repositoryURL = "https://github.com/vector-im/compound-ios";
|
repositoryURL = "https://github.com/vector-im/compound-ios";
|
||||||
requirement = {
|
requirement = {
|
||||||
kind = revision;
|
kind = revision;
|
||||||
revision = 34dcd1e2960f3b0b7f50d6e7d020c108d5acf604;
|
revision = 849e5beaadfb449b53a28d41cc22cf303cc9045b;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
9A472EE0218FE7DCF5283429 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = {
|
9A472EE0218FE7DCF5283429 /* XCRemoteSwiftPackageReference "SwiftUI-Introspect" */ = {
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
"kind" : "remoteSourceControl",
|
"kind" : "remoteSourceControl",
|
||||||
"location" : "https://github.com/vector-im/compound-ios",
|
"location" : "https://github.com/vector-im/compound-ios",
|
||||||
"state" : {
|
"state" : {
|
||||||
"revision" : "34dcd1e2960f3b0b7f50d6e7d020c108d5acf604"
|
"revision" : "849e5beaadfb449b53a28d41cc22cf303cc9045b"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "compose.svg",
|
"filename" : "circle.svg",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
3
ElementX/Resources/Assets.xcassets/images/circle.imageset/circle.svg
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M9.99984 18.3332C8.84706 18.3332 7.76373 18.1144 6.74984 17.6769C5.73595 17.2394 4.854 16.6457 4.104 15.8957C3.354 15.1457 2.76025 14.2637 2.32275 13.2499C1.88525 12.236 1.6665 11.1526 1.6665 9.99985C1.6665 8.84707 1.88525 7.76374 2.32275 6.74985C2.76025 5.73596 3.354 4.85402 4.104 4.10402C4.854 3.35402 5.73595 2.76027 6.74984 2.32277C7.76373 1.88527 8.84706 1.66652 9.99984 1.66652C11.1526 1.66652 12.2359 1.88527 13.2498 2.32277C14.2637 2.76027 15.1457 3.35402 15.8957 4.10402C16.6457 4.85402 17.2394 5.73596 17.6769 6.74985C18.1144 7.76374 18.3332 8.84707 18.3332 9.99985C18.3332 11.1526 18.1144 12.236 17.6769 13.2499C17.2394 14.2637 16.6457 15.1457 15.8957 15.8957C15.1457 16.6457 14.2637 17.2394 13.2498 17.6769C12.2359 18.1144 11.1526 18.3332 9.99984 18.3332ZM9.99984 16.6665C11.8609 16.6665 13.4373 16.0207 14.729 14.729C16.0207 13.4374 16.6665 11.861 16.6665 9.99985C16.6665 8.13874 16.0207 6.56235 14.729 5.27069C13.4373 3.97902 11.8609 3.33319 9.99984 3.33319C8.13873 3.33319 6.56234 3.97902 5.27067 5.27069C3.979 6.56235 3.33317 8.13874 3.33317 9.99985C3.33317 11.861 3.979 13.4374 5.27067 14.729C6.56234 16.0207 8.13873 16.6665 9.99984 16.6665Z" fill="#1B1D22"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "location.svg",
|
"filename" : "Location Pin.svg",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12 19.35C14.0333 17.4833 15.5417 15.7875 16.525 14.2625C17.5083 12.7375 18 11.3833 18 10.2C18 8.38333 17.4208 6.89583 16.2625 5.7375C15.1042 4.57917 13.6833 4 12 4C10.3167 4 8.89583 4.57917 7.7375 5.7375C6.57917 6.89583 6 8.38333 6 10.2C6 11.3833 6.49167 12.7375 7.475 14.2625C8.45833 15.7875 9.96667 17.4833 12 19.35ZM12 21.325C11.7667 21.325 11.5333 21.2833 11.3 21.2C11.0667 21.1167 10.8583 20.9917 10.675 20.825C9.59167 19.825 8.63333 18.85 7.8 17.9C6.96667 16.95 6.27083 16.0292 5.7125 15.1375C5.15417 14.2458 4.72917 13.3875 4.4375 12.5625C4.14583 11.7375 4 10.95 4 10.2C4 7.7 4.80417 5.70833 6.4125 4.225C8.02083 2.74167 9.88333 2 12 2C14.1167 2 15.9792 2.74167 17.5875 4.225C19.1958 5.70833 20 7.7 20 10.2C20 10.95 19.8542 11.7375 19.5625 12.5625C19.2708 13.3875 18.8458 14.2458 18.2875 15.1375C17.7292 16.0292 17.0333 16.95 16.2 17.9C15.3667 18.85 14.4083 19.825 13.325 20.825C13.1417 20.9917 12.9333 21.1167 12.7 21.2C12.4667 21.2833 12.2333 21.325 12 21.325ZM12 12C12.55 12 13.0208 11.8042 13.4125 11.4125C13.8042 11.0208 14 10.55 14 10C14 9.45 13.8042 8.97917 13.4125 8.5875C13.0208 8.19583 12.55 8 12 8C11.45 8 10.9792 8.19583 10.5875 8.5875C10.1958 8.97917 10 9.45 10 10C10 10.55 10.1958 11.0208 10.5875 11.4125C10.9792 11.8042 11.45 12 12 12Z" fill="#1B1D22"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.4 KiB |
@ -1,3 +0,0 @@
|
|||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M12.0001 19.35C14.0335 17.4833 15.5418 15.7875 16.5251 14.2625C17.5085 12.7375 18.0001 11.3833 18.0001 10.2C18.0001 8.38333 17.421 6.89583 16.2626 5.7375C15.1043 4.57917 13.6835 4 12.0001 4C10.3168 4 8.89596 4.57917 7.73762 5.7375C6.57929 6.89583 6.00012 8.38333 6.00012 10.2C6.00012 11.3833 6.49179 12.7375 7.47512 14.2625C8.45846 15.7875 9.96679 17.4833 12.0001 19.35ZM12.0001 21.325C11.7668 21.325 11.5335 21.2833 11.3001 21.2C11.0668 21.1167 10.8585 20.9917 10.6751 20.825C9.59179 19.825 8.63346 18.85 7.80012 17.9C6.96679 16.95 6.27096 16.0292 5.71262 15.1375C5.15429 14.2458 4.72929 13.3875 4.43762 12.5625C4.14596 11.7375 4.00012 10.95 4.00012 10.2C4.00012 7.7 4.80429 5.70833 6.41262 4.225C8.02096 2.74167 9.88346 2 12.0001 2C14.1168 2 15.9793 2.74167 17.5876 4.225C19.196 5.70833 20.0001 7.7 20.0001 10.2C20.0001 10.95 19.8543 11.7375 19.5626 12.5625C19.271 13.3875 18.846 14.2458 18.2876 15.1375C17.7293 16.0292 17.0335 16.95 16.2001 17.9C15.3668 18.85 14.4085 19.825 13.3251 20.825C13.1418 20.9917 12.9335 21.1167 12.7001 21.2C12.4668 21.2833 12.2335 21.325 12.0001 21.325ZM12.0001 12C12.5501 12 13.021 11.8042 13.4126 11.4125C13.8043 11.0208 14.0001 10.55 14.0001 10C14.0001 9.45 13.8043 8.97917 13.4126 8.5875C13.021 8.19583 12.5501 8 12.0001 8C11.4501 8 10.9793 8.19583 10.5876 8.5875C10.196 8.97917 10.0001 9.45 10.0001 10C10.0001 10.55 10.196 11.0208 10.5876 11.4125C10.9793 11.8042 11.4501 12 12.0001 12Z" fill="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.5 KiB |
@ -1,3 +0,0 @@
|
|||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M5 21C4.45 21 3.97917 20.8042 3.5875 20.4125C3.19583 20.0208 3 19.55 3 19V5C3 4.45 3.19583 3.97917 3.5875 3.5875C3.97917 3.19583 4.45 3 5 3H19C19.55 3 20.0208 3.19583 20.4125 3.5875C20.8042 3.97917 21 4.45 21 5V19C21 19.55 20.8042 20.0208 20.4125 20.4125C20.0208 20.8042 19.55 21 19 21H5ZM5 19H19V5H5V19ZM7 17H17C17.2 17 17.35 16.9083 17.45 16.725C17.55 16.5417 17.5333 16.3667 17.4 16.2L14.65 12.525C14.55 12.3917 14.4167 12.325 14.25 12.325C14.0833 12.325 13.95 12.3917 13.85 12.525L11.25 16L9.4 13.525C9.3 13.3917 9.16667 13.325 9 13.325C8.83333 13.325 8.7 13.3917 8.6 13.525L6.6 16.2C6.46667 16.3667 6.45 16.5417 6.55 16.725C6.65 16.9083 6.8 17 7 17Z" fill="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 783 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "microphone.svg",
|
"filename" : "document.svg",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
3
ElementX/Resources/Assets.xcassets/images/document.imageset/document.svg
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M9 18H15C15.2833 18 15.5208 17.9042 15.7125 17.7125C15.9042 17.5208 16 17.2833 16 17C16 16.7167 15.9042 16.4792 15.7125 16.2875C15.5208 16.0958 15.2833 16 15 16H9C8.71667 16 8.47917 16.0958 8.2875 16.2875C8.09583 16.4792 8 16.7167 8 17C8 17.2833 8.09583 17.5208 8.2875 17.7125C8.47917 17.9042 8.71667 18 9 18ZM9 14H15C15.2833 14 15.5208 13.9042 15.7125 13.7125C15.9042 13.5208 16 13.2833 16 13C16 12.7167 15.9042 12.4792 15.7125 12.2875C15.5208 12.0958 15.2833 12 15 12H9C8.71667 12 8.47917 12.0958 8.2875 12.2875C8.09583 12.4792 8 12.7167 8 13C8 13.2833 8.09583 13.5208 8.2875 13.7125C8.47917 13.9042 8.71667 14 9 14ZM6 22C5.45 22 4.97917 21.8042 4.5875 21.4125C4.19583 21.0208 4 20.55 4 20V4C4 3.45 4.19583 2.97917 4.5875 2.5875C4.97917 2.19583 5.45 2 6 2H13.175C13.4417 2 13.6958 2.05 13.9375 2.15C14.1792 2.25 14.3917 2.39167 14.575 2.575L19.425 7.425C19.6083 7.60833 19.75 7.82083 19.85 8.0625C19.95 8.30417 20 8.55833 20 8.825V20C20 20.55 19.8042 21.0208 19.4125 21.4125C19.0208 21.8042 18.55 22 18 22H6ZM13 8V4H6V20H18V9H14C13.7167 9 13.4792 8.90417 13.2875 8.7125C13.0958 8.52083 13 8.28333 13 8Z" fill="#1B1D22"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.2 KiB |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "decryption-error.svg",
|
"filename" : "waiting-to-decrypt.svg",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M12.125 21.8999C12.0083 21.8999 11.9 21.8874 11.8 21.8624C11.7 21.8374 11.6 21.8082 11.5 21.7749C9.25 21.0249 7.45417 19.6416 6.1125 17.6249C4.77083 15.6082 4.06667 13.4332 4 11.0999V6.3749C4 5.95824 4.12083 5.58324 4.3625 5.2499C4.60417 4.91657 4.91667 4.6749 5.3 4.5249L11.3 2.2749C11.5333 2.19157 11.7667 2.1499 12 2.1499C12.2333 2.1499 12.4667 2.19157 12.7 2.2749L18.7 4.5249C19.0833 4.6749 19.3958 4.91657 19.6375 5.2499C19.8792 5.58324 20 5.95824 20 6.3749V11.0999C20 11.2666 19.9958 11.4332 19.9875 11.5999C19.9792 11.7666 19.9667 11.9332 19.95 12.0999C19.8 12.0666 19.6458 12.0416 19.4875 12.0249C19.3292 12.0082 19.1667 11.9999 19 11.9999C18.8167 11.9999 18.6417 12.0082 18.475 12.0249C18.3083 12.0416 18.1333 12.0666 17.95 12.0999C17.9667 11.9332 17.9792 11.7707 17.9875 11.6124C17.9958 11.4541 18 11.2832 18 11.0999V6.3749L12 4.1249L6 6.3749V11.0999C6 13.1166 6.56667 14.9499 7.7 16.5999C8.83333 18.2499 10.2667 19.3499 12 19.8999C12.35 19.7832 12.6917 19.6416 13.025 19.4749C13.3583 19.3082 13.6833 19.1166 14 18.8999V21.2499C13.8333 21.3332 13.6625 21.4082 13.4875 21.4749C13.3125 21.5416 13.075 21.6416 12.775 21.7749C12.675 21.8082 12.5708 21.8374 12.4625 21.8624C12.3542 21.8874 12.2417 21.8999 12.125 21.8999ZM16.85 21.9999C16.6167 21.9999 16.4167 21.9166 16.25 21.7499C16.0833 21.5832 16 21.3832 16 21.1499V17.8499C16 17.6166 16.0833 17.4166 16.25 17.2499C16.4167 17.0832 16.6167 16.9999 16.85 16.9999H17V15.9999C17 15.4499 17.1958 14.9791 17.5875 14.5874C17.9792 14.1957 18.45 13.9999 19 13.9999C19.55 13.9999 20.0208 14.1957 20.4125 14.5874C20.8042 14.9791 21 15.4499 21 15.9999V16.9999H21.15C21.3833 16.9999 21.5833 17.0832 21.75 17.2499C21.9167 17.4166 22 17.6166 22 17.8499V21.1499C22 21.3832 21.9167 21.5832 21.75 21.7499C21.5833 21.9166 21.3833 21.9999 21.15 21.9999H16.85ZM18 16.9999H20V15.9999C20 15.7166 19.9042 15.4791 19.7125 15.2874C19.5208 15.0957 19.2833 14.9999 19 14.9999C18.7167 14.9999 18.4792 15.0957 18.2875 15.2874C18.0958 15.4791 18 15.7166 18 15.9999V16.9999Z" fill="#1B1D22"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 2.1 KiB |
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M13 8C13 7.44772 12.5523 7 12 7C11.4477 7 11 7.44772 11 8V12C11 12.2652 11.1054 12.5196 11.2929 12.7071L14.1229 15.5371C14.5134 15.9276 15.1466 15.9276 15.5371 15.5371C15.9276 15.1466 15.9276 14.5134 15.5371 14.1229L13 11.5858V8Z" fill="#1B1D22"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 11.915C22 17.4379 17.5228 21.915 12 21.915C6.47715 21.915 2 17.4379 2 11.915C2 6.39219 6.47715 1.91504 12 1.91504C17.5228 1.91504 22 6.39219 22 11.915ZM20 11.915C20 16.3333 16.4183 19.915 12 19.915C7.58172 19.915 4 16.3333 4 11.915C4 7.49676 7.58172 3.91504 12 3.91504C16.4183 3.91504 20 7.49676 20 11.915Z" fill="#1B1D22"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 738 B |
@ -1,3 +0,0 @@
|
|||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<path d="M5 21.025C4.45 21.025 3.97917 20.8292 3.5875 20.4375C3.19583 20.0458 3 19.575 3 19.025V5.025C3 4.475 3.19583 4.00417 3.5875 3.6125C3.97917 3.22083 4.45 3.025 5 3.025H13.925L11.925 5.025H5V19.025H19V12.075L21 10.075V19.025C21 19.575 20.8042 20.0458 20.4125 20.4375C20.0208 20.8292 19.55 21.025 19 21.025H5ZM16.175 3.6L17.6 5L11 11.6V13.025H12.4L19.025 6.4L20.45 7.8L13.825 14.425C13.6417 14.6083 13.4292 14.7542 13.1875 14.8625C12.9458 14.9708 12.6917 15.025 12.425 15.025H10C9.71667 15.025 9.47917 14.9292 9.2875 14.7375C9.09583 14.5458 9 14.3083 9 14.025V11.6C9 11.3333 9.05 11.0792 9.15 10.8375C9.25 10.5958 9.39167 10.3833 9.575 10.2L16.175 3.6ZM20.45 7.8L16.175 3.6L18.675 1.1C19.075 0.7 19.5542 0.5 20.1125 0.5C20.6708 0.5 21.1417 0.7 21.525 1.1L22.925 2.525C23.3083 2.90833 23.5 3.375 23.5 3.925C23.5 4.475 23.3083 4.94167 22.925 5.325L20.45 7.8Z" fill="#1B1D22"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 983 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "photos-library.svg",
|
"filename" : "sign-out.svg",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
],
|
],
|
3
ElementX/Resources/Assets.xcassets/images/home/sign-out.imageset/sign-out.svg
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M9.0002 12.0312C9.0002 11.7479 9.09603 11.5104 9.28769 11.3188C9.47936 11.1271 9.71686 11.0312 10.0002 11.0312H17.1502L15.2752 9.15625C15.0752 8.95625 14.9752 8.72292 14.9752 8.45625C14.9752 8.18958 15.0835 7.94792 15.3002 7.73125C15.5002 7.53125 15.7377 7.43542 16.0127 7.44375C16.2877 7.45208 16.5169 7.54792 16.7002 7.73125L20.3002 11.3313C20.4002 11.4313 20.471 11.5396 20.5127 11.6562C20.5544 11.7729 20.5752 11.8979 20.5752 12.0312C20.5752 12.1646 20.5544 12.2896 20.5127 12.4062C20.471 12.5229 20.4002 12.6312 20.3002 12.7312L16.7002 16.3313C16.5002 16.5313 16.2627 16.6271 15.9877 16.6188C15.7127 16.6104 15.4835 16.5146 15.3002 16.3313C15.1002 16.1313 14.996 15.8938 14.9877 15.6188C14.9794 15.3438 15.0752 15.1063 15.2752 14.9062L17.1502 13.0312H10.0002C9.71686 13.0312 9.47936 12.9354 9.28769 12.7438C9.09603 12.5521 9.0002 12.3146 9.0002 12.0312ZM3.00019 5.03125C3.00019 4.48125 3.19603 4.01042 3.5877 3.61875C3.97936 3.22708 4.4502 3.03125 5.0002 3.03125H11.0002C11.2835 3.03125 11.521 3.12708 11.7127 3.31875C11.9044 3.51042 12.0002 3.74792 12.0002 4.03125C12.0002 4.31458 11.9044 4.55208 11.7127 4.74375C11.521 4.93542 11.2835 5.03125 11.0002 5.03125L5.0002 5.03125L5.0002 19.0312H11.0002C11.2835 19.0312 11.521 19.1271 11.7127 19.3188C11.9044 19.5104 12.0002 19.7479 12.0002 20.0312C12.0002 20.3146 11.9044 20.5521 11.7127 20.7438C11.521 20.9354 11.2835 21.0312 11.0002 21.0312H5.0002C4.4502 21.0312 3.97936 20.8354 3.5877 20.4438C3.19603 20.0521 3.00019 19.5813 3.00019 19.0312V5.03125Z" fill="#1B1D22"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.6 KiB |
@ -1,5 +0,0 @@
|
|||||||
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<g id="mic_FILL1_wght400_GRAD0_opsz20 1">
|
|
||||||
<path id="Vector" d="M12.0294 14.15C11.1764 14.15 10.4458 13.8458 9.83746 13.2375C9.22913 12.6292 8.92496 11.9 8.92496 11.05V5.075C8.92496 4.22083 9.22913 3.49479 9.83746 2.89688C10.4458 2.29896 11.1764 2 12.0294 2C12.8823 2 13.6073 2.29896 14.2044 2.89688C14.8014 3.49479 15.1 4.22083 15.1 5.075V11.05C15.1 11.9 14.8014 12.6292 14.2044 13.2375C13.6073 13.8458 12.8823 14.15 12.0294 14.15ZM12.025 21C11.7416 21 11.4958 20.8958 11.2875 20.6875C11.0791 20.4792 10.975 20.2333 10.975 19.95V18.0047C9.44163 17.8016 8.14163 17.1625 7.07496 16.0875C6.0083 15.0125 5.34996 13.725 5.09996 12.225C5.04996 11.9153 5.13136 11.6421 5.34416 11.4052C5.55698 11.1684 5.84225 11.05 6.19996 11.05C6.4333 11.05 6.64163 11.1333 6.82496 11.3C7.0083 11.4667 7.12496 11.6833 7.17496 11.95C7.38833 13.0953 7.94636 14.0525 8.84906 14.8215C9.75178 15.5905 10.8104 15.975 12.025 15.975C13.2332 15.975 14.2864 15.5905 15.1845 14.8215C16.0825 14.0525 16.6377 13.0953 16.85 11.95C16.9 11.6833 17.0166 11.4667 17.2 11.3C17.3833 11.1333 17.6003 11.05 17.8509 11.05C18.191 11.05 18.4675 11.1684 18.6805 11.4052C18.8935 11.6421 18.975 11.9153 18.925 12.225C18.6949 13.7279 18.0457 15.0162 16.9774 16.0897C15.9091 17.1632 14.6083 17.8016 13.075 18.0047V19.95C13.075 20.2333 12.9708 20.4792 12.7625 20.6875C12.5541 20.8958 12.3083 21 12.025 21Z" fill="#1B1D22"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 1.4 KiB |
16
ElementX/Resources/Assets.xcassets/images/share-ios.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "share-ios.svg",
|
||||||
|
"idiom" : "universal"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
},
|
||||||
|
"properties" : {
|
||||||
|
"preserves-vector-representation" : true,
|
||||||
|
"template-rendering-intent" : "template"
|
||||||
|
}
|
||||||
|
}
|
4
ElementX/Resources/Assets.xcassets/images/share-ios.imageset/share-ios.svg
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.7071 2.29289C12.3166 1.90237 11.6834 1.90237 11.2929 2.29289L8.79289 4.79289C8.40237 5.18342 8.40237 5.81658 8.79289 6.20711C9.18342 6.59763 9.81658 6.59763 10.2071 6.20711L11 5.41421V14C11 14.5523 11.4477 15 12 15C12.5523 15 13 14.5523 13 14V5.41421L13.7929 6.20711C14.1834 6.59763 14.8166 6.59763 15.2071 6.20711C15.5976 5.81658 15.5976 5.18342 15.2071 4.79289L12.7071 2.29289Z" fill="#1B1D22"/>
|
||||||
|
<path d="M6 20V10H8C8.55228 10 9 9.55228 9 9C9 8.44772 8.55228 8 8 8H6C4.89543 8 4 8.89543 4 10V20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V10C20 8.89543 19.1046 8 18 8H16C15.4477 8 15 8.44772 15 9C15 9.55228 15.4477 10 16 10H18V20H6Z" fill="#1B1D22"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 783 B |
@ -135,6 +135,7 @@
|
|||||||
"common_refreshing" = "Refreshing…";
|
"common_refreshing" = "Refreshing…";
|
||||||
"common_replying_to" = "Replying to %1$@";
|
"common_replying_to" = "Replying to %1$@";
|
||||||
"common_report_a_bug" = "Report a bug";
|
"common_report_a_bug" = "Report a bug";
|
||||||
|
"common_report_a_problem" = "Report a problem";
|
||||||
"common_report_submitted" = "Report submitted";
|
"common_report_submitted" = "Report submitted";
|
||||||
"common_rich_text_editor" = "Rich text editor";
|
"common_rich_text_editor" = "Rich text editor";
|
||||||
"common_room" = "Room";
|
"common_room" = "Room";
|
||||||
@ -174,7 +175,6 @@
|
|||||||
"common_voice_message" = "Voice message";
|
"common_voice_message" = "Voice message";
|
||||||
"common_waiting" = "Waiting…";
|
"common_waiting" = "Waiting…";
|
||||||
"common_waiting_for_decryption_key" = "Waiting for this message";
|
"common_waiting_for_decryption_key" = "Waiting for this message";
|
||||||
"common.report_a_problem" = "Report a problem";
|
|
||||||
"common_poll_end_confirmation" = "Are you sure you want to end this poll?";
|
"common_poll_end_confirmation" = "Are you sure you want to end this poll?";
|
||||||
"common_poll_summary" = "Poll: %1$@";
|
"common_poll_summary" = "Poll: %1$@";
|
||||||
"common_verify_device" = "Verify device";
|
"common_verify_device" = "Verify device";
|
||||||
|
@ -33,10 +33,10 @@ internal enum Asset {
|
|||||||
internal enum Images {
|
internal enum Images {
|
||||||
internal static let appLogo = ImageAsset(name: "images/app-logo")
|
internal static let appLogo = ImageAsset(name: "images/app-logo")
|
||||||
internal static let serverSelectionIcon = ImageAsset(name: "images/server-selection-icon")
|
internal static let serverSelectionIcon = ImageAsset(name: "images/server-selection-icon")
|
||||||
|
internal static let circle = ImageAsset(name: "images/circle")
|
||||||
internal static let closeCircle = ImageAsset(name: "images/close-circle")
|
internal static let closeCircle = ImageAsset(name: "images/close-circle")
|
||||||
internal static let addLocation = ImageAsset(name: "images/add-location")
|
internal static let addLocation = ImageAsset(name: "images/add-location")
|
||||||
internal static let attachment = ImageAsset(name: "images/attachment")
|
internal static let attachment = ImageAsset(name: "images/attachment")
|
||||||
internal static let photosLibrary = ImageAsset(name: "images/photos-library")
|
|
||||||
internal static let takePhoto = ImageAsset(name: "images/take-photo")
|
internal static let takePhoto = ImageAsset(name: "images/take-photo")
|
||||||
internal static let textFormatting = ImageAsset(name: "images/text-formatting")
|
internal static let textFormatting = ImageAsset(name: "images/text-formatting")
|
||||||
internal static let bold = ImageAsset(name: "images/bold")
|
internal static let bold = ImageAsset(name: "images/bold")
|
||||||
@ -57,10 +57,11 @@ internal enum Asset {
|
|||||||
internal static let textFormat = ImageAsset(name: "images/text-format")
|
internal static let textFormat = ImageAsset(name: "images/text-format")
|
||||||
internal static let underline = ImageAsset(name: "images/underline")
|
internal static let underline = ImageAsset(name: "images/underline")
|
||||||
internal static let unindent = ImageAsset(name: "images/unindent")
|
internal static let unindent = ImageAsset(name: "images/unindent")
|
||||||
|
internal static let document = ImageAsset(name: "images/document")
|
||||||
internal static let decryptionError = ImageAsset(name: "images/decryption-error")
|
internal static let decryptionError = ImageAsset(name: "images/decryption-error")
|
||||||
internal static let endedPoll = ImageAsset(name: "images/ended-poll")
|
internal static let endedPoll = ImageAsset(name: "images/ended-poll")
|
||||||
internal static let compose = ImageAsset(name: "images/compose")
|
|
||||||
internal static let settingsIconWithBadge = ImageAsset(name: "images/settings-icon-with-badge")
|
internal static let settingsIconWithBadge = ImageAsset(name: "images/settings-icon-with-badge")
|
||||||
|
internal static let signOut = ImageAsset(name: "images/sign-out")
|
||||||
internal static let launchBackground = ImageAsset(name: "images/launch-background")
|
internal static let launchBackground = ImageAsset(name: "images/launch-background")
|
||||||
internal static let locationMarker = ImageAsset(name: "images/location-marker")
|
internal static let locationMarker = ImageAsset(name: "images/location-marker")
|
||||||
internal static let locationPin = ImageAsset(name: "images/location-pin")
|
internal static let locationPin = ImageAsset(name: "images/location-pin")
|
||||||
@ -68,10 +69,10 @@ internal enum Asset {
|
|||||||
internal static let locationPointer = ImageAsset(name: "images/location-pointer")
|
internal static let locationPointer = ImageAsset(name: "images/location-pointer")
|
||||||
internal static let mediaPause = ImageAsset(name: "images/media-pause")
|
internal static let mediaPause = ImageAsset(name: "images/media-pause")
|
||||||
internal static let mediaPlay = ImageAsset(name: "images/media-play")
|
internal static let mediaPlay = ImageAsset(name: "images/media-play")
|
||||||
internal static let microphone = ImageAsset(name: "images/microphone")
|
|
||||||
internal static let secureBackupIcon = ImageAsset(name: "images/secure-backup-icon")
|
internal static let secureBackupIcon = ImageAsset(name: "images/secure-backup-icon")
|
||||||
internal static let secureBackupOff = ImageAsset(name: "images/secure-backup-off")
|
internal static let secureBackupOff = ImageAsset(name: "images/secure-backup-off")
|
||||||
internal static let secureBackupOn = ImageAsset(name: "images/secure-backup-on")
|
internal static let secureBackupOn = ImageAsset(name: "images/secure-backup-on")
|
||||||
|
internal static let shareIos = ImageAsset(name: "images/share-ios")
|
||||||
internal static let addReaction = ImageAsset(name: "images/add-reaction")
|
internal static let addReaction = ImageAsset(name: "images/add-reaction")
|
||||||
internal static let copy = ImageAsset(name: "images/copy")
|
internal static let copy = ImageAsset(name: "images/copy")
|
||||||
internal static let editOutline = ImageAsset(name: "images/edit-outline")
|
internal static let editOutline = ImageAsset(name: "images/edit-outline")
|
||||||
|
@ -310,6 +310,8 @@ public enum L10n {
|
|||||||
}
|
}
|
||||||
/// Report a bug
|
/// Report a bug
|
||||||
public static var commonReportABug: String { return L10n.tr("Localizable", "common_report_a_bug") }
|
public static var commonReportABug: String { return L10n.tr("Localizable", "common_report_a_bug") }
|
||||||
|
/// Report a problem
|
||||||
|
public static var commonReportAProblem: String { return L10n.tr("Localizable", "common_report_a_problem") }
|
||||||
/// Report submitted
|
/// Report submitted
|
||||||
public static var commonReportSubmitted: String { return L10n.tr("Localizable", "common_report_submitted") }
|
public static var commonReportSubmitted: String { return L10n.tr("Localizable", "common_report_submitted") }
|
||||||
/// Rich text editor
|
/// Rich text editor
|
||||||
@ -1569,11 +1571,6 @@ public enum L10n {
|
|||||||
/// Edit poll
|
/// Edit poll
|
||||||
public static var editPoll: String { return L10n.tr("Localizable", "action.edit_poll") }
|
public static var editPoll: String { return L10n.tr("Localizable", "action.edit_poll") }
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum Common {
|
|
||||||
/// Report a problem
|
|
||||||
public static var reportAProblem: String { return L10n.tr("Localizable", "common.report_a_problem") }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length
|
// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length
|
||||||
// swiftlint:enable nesting type_body_length type_name vertical_whitespace_opening_braces
|
// swiftlint:enable nesting type_body_length type_name vertical_whitespace_opening_braces
|
||||||
|
@ -35,7 +35,7 @@ struct BugReportScreen: View {
|
|||||||
.disabled(context.viewState.shouldDisableInteraction)
|
.disabled(context.viewState.shouldDisableInteraction)
|
||||||
.scrollDismissesKeyboard(.immediately)
|
.scrollDismissesKeyboard(.immediately)
|
||||||
.compoundList()
|
.compoundList()
|
||||||
.navigationTitle(L10n.commonReportABug)
|
.navigationTitle(L10n.commonReportAProblem)
|
||||||
.navigationBarTitleDisplayMode(.inline)
|
.navigationBarTitleDisplayMode(.inline)
|
||||||
.toolbar { toolbar }
|
.toolbar { toolbar }
|
||||||
.interactiveDismissDisabled()
|
.interactiveDismissDisabled()
|
||||||
|
@ -44,7 +44,7 @@ struct RoomAttachmentPicker: View {
|
|||||||
context.showAttachmentPopover = false
|
context.showAttachmentPopover = false
|
||||||
context.send(viewAction: .displayMediaPicker)
|
context.send(viewAction: .displayMediaPicker)
|
||||||
} label: {
|
} label: {
|
||||||
Label(L10n.screenRoomAttachmentSourceGallery, iconAsset: Asset.Images.photosLibrary)
|
Label(L10n.screenRoomAttachmentSourceGallery, icon: \.image)
|
||||||
.labelStyle(.menuSheet)
|
.labelStyle(.menuSheet)
|
||||||
}
|
}
|
||||||
.accessibilityIdentifier(A11yIdentifiers.roomScreen.attachmentPickerPhotoLibrary)
|
.accessibilityIdentifier(A11yIdentifiers.roomScreen.attachmentPickerPhotoLibrary)
|
||||||
|
@ -226,7 +226,7 @@ struct HomeScreen: View {
|
|||||||
Button {
|
Button {
|
||||||
context.send(viewAction: .startChat)
|
context.send(viewAction: .startChat)
|
||||||
} label: {
|
} label: {
|
||||||
CompoundIcon(customImage: Asset.Images.compose.swiftUIImage)
|
CompoundIcon(\.edit)
|
||||||
}
|
}
|
||||||
.accessibilityLabel(L10n.actionStartChat)
|
.accessibilityLabel(L10n.actionStartChat)
|
||||||
.accessibilityIdentifier(A11yIdentifiers.homeScreen.startChat)
|
.accessibilityIdentifier(A11yIdentifiers.homeScreen.startChat)
|
||||||
|
@ -36,7 +36,7 @@ struct HomeScreenEmptyStateView: View {
|
|||||||
.padding(.bottom, 12)
|
.padding(.bottom, 12)
|
||||||
|
|
||||||
Button { context.send(viewAction: .startChat) } label: {
|
Button { context.send(viewAction: .startChat) } label: {
|
||||||
Label(L10n.actionStartChat, iconAsset: Asset.Images.compose)
|
Label(L10n.actionStartChat, icon: \.edit)
|
||||||
.font(.compound.bodyLGSemibold)
|
.font(.compound.bodyLGSemibold)
|
||||||
.foregroundColor(.compound.textOnSolidPrimary)
|
.foregroundColor(.compound.textOnSolidPrimary)
|
||||||
.padding(.vertical, 6)
|
.padding(.vertical, 6)
|
||||||
|
@ -39,13 +39,13 @@ struct HomeScreenRoomList: View {
|
|||||||
Button {
|
Button {
|
||||||
context.send(viewAction: .showRoomDetails(roomIdentifier: room.id))
|
context.send(viewAction: .showRoomDetails(roomIdentifier: room.id))
|
||||||
} label: {
|
} label: {
|
||||||
Label(L10n.commonSettings, systemImage: "gearshape")
|
Label(L10n.commonSettings, icon: \.settings)
|
||||||
}
|
}
|
||||||
|
|
||||||
Button(role: .destructive) {
|
Button(role: .destructive) {
|
||||||
context.send(viewAction: .leaveRoom(roomIdentifier: room.id))
|
context.send(viewAction: .leaveRoom(roomIdentifier: room.id))
|
||||||
} label: {
|
} label: {
|
||||||
Label(L10n.actionLeaveRoom, systemImage: "rectangle.portrait.and.arrow.right")
|
Label(L10n.actionLeaveRoom, icon: \.leave)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ import Compound
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct HomeScreenUserMenuButton: View {
|
struct HomeScreenUserMenuButton: View {
|
||||||
@Environment(\.colorScheme) var colorScheme
|
@Environment(\.colorScheme) private var colorScheme
|
||||||
|
|
||||||
@ObservedObject var context: HomeScreenViewModel.Context
|
@ObservedObject var context: HomeScreenViewModel.Context
|
||||||
|
|
||||||
@ -42,19 +42,19 @@ struct HomeScreenUserMenuButton: View {
|
|||||||
}
|
}
|
||||||
Section {
|
Section {
|
||||||
MatrixUserShareLink(userID: context.viewState.userID) {
|
MatrixUserShareLink(userID: context.viewState.userID) {
|
||||||
Label(L10n.actionInvite, systemImage: "square.and.arrow.up")
|
Label(L10n.actionInvite, iconAsset: Asset.Images.shareIos)
|
||||||
}
|
}
|
||||||
Button {
|
Button {
|
||||||
context.send(viewAction: .userMenu(action: .feedback))
|
context.send(viewAction: .userMenu(action: .feedback))
|
||||||
} label: {
|
} label: {
|
||||||
Label(L10n.commonReportABug, systemImage: "ladybug")
|
Label(L10n.commonReportAProblem, icon: \.chatProblem)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Section {
|
Section {
|
||||||
Button(role: .destructive) {
|
Button(role: .destructive) {
|
||||||
context.send(viewAction: .userMenu(action: .logout))
|
context.send(viewAction: .userMenu(action: .logout))
|
||||||
} label: {
|
} label: {
|
||||||
Label(L10n.screenSignoutPreferenceItem, systemImage: "rectangle.portrait.and.arrow.right")
|
Label(L10n.screenSignoutPreferenceItem, iconAsset: Asset.Images.signOut)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} label: {
|
} label: {
|
||||||
|
@ -122,15 +122,12 @@ struct RoomDetailsEditScreen: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var avatarOverlayIcon: some View {
|
private var avatarOverlayIcon: some View {
|
||||||
Image(systemName: "camera")
|
CompoundIcon(customImage: Asset.Images.editing.swiftUIImage, size: .xSmall, relativeTo: .compound.bodyLG)
|
||||||
.font(.system(size: 14, weight: .semibold))
|
|
||||||
.padding(3)
|
|
||||||
.imageScale(.small)
|
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
|
.padding(3)
|
||||||
.background {
|
.background {
|
||||||
Circle()
|
Circle()
|
||||||
.foregroundColor(.black)
|
.foregroundColor(.black)
|
||||||
.aspectRatio(1, contentMode: .fill)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
import Compound
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
enum TimelineReplyViewPlacement {
|
enum TimelineReplyViewPlacement {
|
||||||
@ -43,7 +44,7 @@ struct TimelineReplyView: View {
|
|||||||
ReplyView(sender: sender,
|
ReplyView(sender: sender,
|
||||||
plainBody: content.body,
|
plainBody: content.body,
|
||||||
formattedBody: nil,
|
formattedBody: nil,
|
||||||
icon: .init(kind: .systemIcon("doc.text.fill"), cornerRadii: iconCornerRadii))
|
icon: .init(kind: .iconAsset(Asset.Images.document), cornerRadii: iconCornerRadii))
|
||||||
case .image(let content):
|
case .image(let content):
|
||||||
ReplyView(sender: sender,
|
ReplyView(sender: sender,
|
||||||
plainBody: content.body,
|
plainBody: content.body,
|
||||||
@ -66,12 +67,12 @@ struct TimelineReplyView: View {
|
|||||||
ReplyView(sender: sender,
|
ReplyView(sender: sender,
|
||||||
plainBody: L10n.commonVoiceMessage,
|
plainBody: L10n.commonVoiceMessage,
|
||||||
formattedBody: nil,
|
formattedBody: nil,
|
||||||
icon: .init(kind: .icon(Asset.Images.microphone.name), cornerRadii: iconCornerRadii))
|
icon: .init(kind: .icon(\.micOnOutline), cornerRadii: iconCornerRadii))
|
||||||
case .location:
|
case .location:
|
||||||
ReplyView(sender: sender,
|
ReplyView(sender: sender,
|
||||||
plainBody: L10n.commonSharedLocation,
|
plainBody: L10n.commonSharedLocation,
|
||||||
formattedBody: nil,
|
formattedBody: nil,
|
||||||
icon: .init(kind: .icon(Asset.Images.locationMarker.name), cornerRadii: iconCornerRadii))
|
icon: .init(kind: .iconAsset(Asset.Images.addLocation), cornerRadii: iconCornerRadii))
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
LoadingReplyView()
|
LoadingReplyView()
|
||||||
@ -100,7 +101,8 @@ struct TimelineReplyView: View {
|
|||||||
enum Kind {
|
enum Kind {
|
||||||
case mediaSource(MediaSourceProxy)
|
case mediaSource(MediaSourceProxy)
|
||||||
case systemIcon(String)
|
case systemIcon(String)
|
||||||
case icon(String)
|
case iconAsset(ImageAsset)
|
||||||
|
case icon(KeyPath<CompoundIcons, Image>)
|
||||||
}
|
}
|
||||||
|
|
||||||
let kind: Kind
|
let kind: Kind
|
||||||
@ -191,11 +193,13 @@ struct TimelineReplyView: View {
|
|||||||
.resizable()
|
.resizable()
|
||||||
.aspectRatio(contentMode: .fit)
|
.aspectRatio(contentMode: .fit)
|
||||||
.padding(8.0)
|
.padding(8.0)
|
||||||
case .icon(let iconName):
|
case .iconAsset(let asset):
|
||||||
Image(iconName)
|
Image(asset: asset)
|
||||||
.resizable()
|
.resizable()
|
||||||
.aspectRatio(contentMode: .fit)
|
.aspectRatio(contentMode: .fit)
|
||||||
.padding(8.0)
|
.padding(8.0)
|
||||||
|
case .icon(let keyPath):
|
||||||
|
CompoundIcon(keyPath, size: .small, relativeTo: .body)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,13 +14,14 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
import Compound
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct SwipeToReplyView: View {
|
struct SwipeToReplyView: View {
|
||||||
let timelineItem: RoomTimelineItemProtocol
|
let timelineItem: RoomTimelineItemProtocol
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Image(systemName: "arrowshape.turn.up.left")
|
CompoundIcon(customImage: Asset.Images.reply.swiftUIImage)
|
||||||
.foregroundColor(.compound.iconPrimary)
|
.foregroundColor(.compound.iconPrimary)
|
||||||
.accessibilityHidden(true)
|
.accessibilityHidden(true)
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,9 @@
|
|||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
import Compound
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct TimelineDeliveryStatusView: View {
|
struct TimelineDeliveryStatusView: View {
|
||||||
enum Status {
|
enum Status {
|
||||||
case sending
|
case sending
|
||||||
@ -23,20 +25,18 @@ struct TimelineDeliveryStatusView: View {
|
|||||||
|
|
||||||
let deliveryStatus: Status
|
let deliveryStatus: Status
|
||||||
|
|
||||||
private var systemImageName: String {
|
private var icon: CompoundIcon {
|
||||||
switch deliveryStatus {
|
switch deliveryStatus {
|
||||||
case .sending:
|
case .sending:
|
||||||
return "circle"
|
return CompoundIcon(customImage: Asset.Images.circle.swiftUIImage, size: .xSmall, relativeTo: .compound.bodyMD)
|
||||||
case .sent:
|
case .sent:
|
||||||
return "checkmark.circle"
|
return CompoundIcon(\.checkCircle, size: .xSmall, relativeTo: .compound.bodyMD)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
Image(systemName: systemImageName)
|
icon
|
||||||
.resizable()
|
|
||||||
.foregroundColor(.compound.iconSecondary)
|
.foregroundColor(.compound.iconSecondary)
|
||||||
.frame(width: 16.0, height: 16.0)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,12 +54,12 @@ struct EncryptedRoomTimelineView_Previews: PreviewProvider, TestablePreview {
|
|||||||
|
|
||||||
static var body: some View {
|
static var body: some View {
|
||||||
VStack(alignment: .leading, spacing: 20.0) {
|
VStack(alignment: .leading, spacing: 20.0) {
|
||||||
EncryptedRoomTimelineView(timelineItem: itemWith(text: "Text",
|
EncryptedRoomTimelineView(timelineItem: itemWith(text: L10n.commonWaitingForDecryptionKey,
|
||||||
timestamp: "Now",
|
timestamp: "Now",
|
||||||
isOutgoing: false,
|
isOutgoing: false,
|
||||||
senderId: "Bob"))
|
senderId: "Bob"))
|
||||||
|
|
||||||
EncryptedRoomTimelineView(timelineItem: itemWith(text: "Some other text",
|
EncryptedRoomTimelineView(timelineItem: itemWith(text: L10n.commonWaitingForDecryptionKey,
|
||||||
timestamp: "Later",
|
timestamp: "Later",
|
||||||
isOutgoing: true,
|
isOutgoing: true,
|
||||||
senderId: "Anne"))
|
senderId: "Anne"))
|
||||||
|
@ -132,7 +132,7 @@ struct SettingsScreen: View {
|
|||||||
})
|
})
|
||||||
.accessibilityIdentifier(A11yIdentifiers.settingsScreen.screenLock)
|
.accessibilityIdentifier(A11yIdentifiers.settingsScreen.screenLock)
|
||||||
|
|
||||||
ListRow(label: .default(title: L10n.commonReportABug,
|
ListRow(label: .default(title: L10n.commonReportAProblem,
|
||||||
systemIcon: .ladybug),
|
systemIcon: .ladybug),
|
||||||
kind: .navigationLink {
|
kind: .navigationLink {
|
||||||
context.send(viewAction: .reportBug)
|
context.send(viewAction: .reportBug)
|
||||||
|
@ -89,15 +89,12 @@ struct UserDetailsEditScreen: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private var avatarOverlayIcon: some View {
|
private var avatarOverlayIcon: some View {
|
||||||
Image(systemName: "camera")
|
CompoundIcon(customImage: Asset.Images.editing.swiftUIImage, size: .xSmall, relativeTo: .compound.bodyLG)
|
||||||
.font(.system(size: 14, weight: .semibold))
|
|
||||||
.padding(3)
|
|
||||||
.imageScale(.small)
|
|
||||||
.foregroundColor(.white)
|
.foregroundColor(.white)
|
||||||
|
.padding(4)
|
||||||
.background {
|
.background {
|
||||||
Circle()
|
Circle()
|
||||||
.foregroundColor(.black)
|
.foregroundColor(.black)
|
||||||
.aspectRatio(1, contentMode: .fill)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,13 +18,14 @@ import XCTest
|
|||||||
|
|
||||||
@MainActor
|
@MainActor
|
||||||
class UserSessionScreenTests: XCTestCase {
|
class UserSessionScreenTests: XCTestCase {
|
||||||
|
let firstRoomName = "Foundation 🔭🪐🌌"
|
||||||
|
|
||||||
func testUserSessionFlows() async throws {
|
func testUserSessionFlows() async throws {
|
||||||
let roomName = "First room"
|
|
||||||
let app = Application.launch(.userSessionScreen)
|
let app = Application.launch(.userSessionScreen)
|
||||||
try await app.assertScreenshot(.userSessionScreen, step: 1)
|
try await app.assertScreenshot(.userSessionScreen, step: 1)
|
||||||
|
|
||||||
app.buttons[A11yIdentifiers.homeScreen.roomName(roomName)].tap()
|
app.buttons[A11yIdentifiers.homeScreen.roomName(firstRoomName)].tap()
|
||||||
XCTAssert(app.staticTexts[roomName].waitForExistence(timeout: 5.0))
|
XCTAssert(app.staticTexts[firstRoomName].waitForExistence(timeout: 5.0))
|
||||||
try await Task.sleep(for: .seconds(1))
|
try await Task.sleep(for: .seconds(1))
|
||||||
try await app.assertScreenshot(.userSessionScreen, step: 2)
|
try await app.assertScreenshot(.userSessionScreen, step: 2)
|
||||||
|
|
||||||
@ -33,10 +34,9 @@ class UserSessionScreenTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testUserSessionReply() async throws {
|
func testUserSessionReply() async throws {
|
||||||
let roomName = "First room"
|
|
||||||
let app = Application.launch(.userSessionScreenReply, disableTimelineAccessibility: false)
|
let app = Application.launch(.userSessionScreenReply, disableTimelineAccessibility: false)
|
||||||
app.buttons[A11yIdentifiers.homeScreen.roomName(roomName)].tap()
|
app.buttons[A11yIdentifiers.homeScreen.roomName(firstRoomName)].tap()
|
||||||
XCTAssert(app.staticTexts[roomName].waitForExistence(timeout: 5.0))
|
XCTAssert(app.staticTexts[firstRoomName].waitForExistence(timeout: 5.0))
|
||||||
try await Task.sleep(for: .seconds(1))
|
try await Task.sleep(for: .seconds(1))
|
||||||
|
|
||||||
let cell = app.cells.firstMatch
|
let cell = app.cells.firstMatch
|
||||||
@ -46,11 +46,10 @@ class UserSessionScreenTests: XCTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func testUserSessionRTE() async throws {
|
func testUserSessionRTE() async throws {
|
||||||
let roomName = "First room"
|
|
||||||
let app = Application.launch(.userSessionScreenRTE)
|
let app = Application.launch(.userSessionScreenRTE)
|
||||||
|
|
||||||
app.buttons[A11yIdentifiers.homeScreen.roomName(roomName)].tap()
|
app.buttons[A11yIdentifiers.homeScreen.roomName(firstRoomName)].tap()
|
||||||
XCTAssert(app.staticTexts[roomName].waitForExistence(timeout: 5.0))
|
XCTAssert(app.staticTexts[firstRoomName].waitForExistence(timeout: 5.0))
|
||||||
try await Task.sleep(for: .seconds(1))
|
try await Task.sleep(for: .seconds(1))
|
||||||
|
|
||||||
app.buttons[A11yIdentifiers.roomScreen.composerToolbar.openComposeOptions].tap()
|
app.buttons[A11yIdentifiers.roomScreen.composerToolbar.openComposeOptions].tap()
|
||||||
|
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPad-9th-generation.userSessionScreen-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPad-9th-generation.userSessionScreen-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPad-9th-generation.userSessionScreen-3.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPad-9th-generation.userSessionScreenRTE-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPad-9th-generation.userSessionScreenRTE-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPad-9th-generation.userSessionScreenReply.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPhone-14.userSessionScreen-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPhone-14.userSessionScreen-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPhone-14.userSessionScreen-3.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPhone-14.userSessionScreenRTE-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPhone-14.userSessionScreenRTE-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/en-GB-iPhone-14.userSessionScreenReply.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPad-9th-generation.userSessionScreen-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPad-9th-generation.userSessionScreen-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPad-9th-generation.userSessionScreen-3.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPad-9th-generation.userSessionScreenRTE-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPad-9th-generation.userSessionScreenRTE-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPad-9th-generation.userSessionScreenReply.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPhone-14.userSessionScreen-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPhone-14.userSessionScreen-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPhone-14.userSessionScreen-3.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPhone-14.userSessionScreenRTE-1.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPhone-14.userSessionScreenRTE-2.png
(Stored with Git LFS)
BIN
UITests/Sources/__Snapshots__/Application/pseudo-iPhone-14.userSessionScreenReply.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_appLockSettingsScreen.Face-ID.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_appLockSettingsScreen.No-Biometrics.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_appLockSettingsScreen.Touch-ID.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_bugReport.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_bugReport.2.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_encryptedRoomTimelineView.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_encryptedRoomTimelineView.2.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_homeScreen.Empty.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_homeScreen.Loaded.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_homeScreen.Loading.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_homeScreenEmptyStateView.Constrained-layout.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_homeScreenEmptyStateView.Normal-Layout.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_homeScreenEmptyStateView.View.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_messageComposer.Replying-in-thread.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_messageComposer.Replying.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_roomDetailsEditScreen.Normal.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_settingsScreen.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_swipeToReplyView.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_timelineDeliveryStatusView.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_timelineItemStyler.Bubbles.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_timelineItemStyler.Plain.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_timelineReplyView.1.png
(Stored with Git LFS)
BIN
UnitTests/__Snapshots__/PreviewTests/test_userDetailsEditScreen.1.png
(Stored with Git LFS)
@ -49,7 +49,7 @@ packages:
|
|||||||
# path: ../matrix-rust-sdk
|
# path: ../matrix-rust-sdk
|
||||||
Compound:
|
Compound:
|
||||||
url: https://github.com/vector-im/compound-ios
|
url: https://github.com/vector-im/compound-ios
|
||||||
revision: 34dcd1e2960f3b0b7f50d6e7d020c108d5acf604
|
revision: 849e5beaadfb449b53a28d41cc22cf303cc9045b
|
||||||
# path: ../compound-ios
|
# path: ../compound-ios
|
||||||
AnalyticsEvents:
|
AnalyticsEvents:
|
||||||
url: https://github.com/matrix-org/matrix-analytics-events
|
url: https://github.com/matrix-org/matrix-analytics-events
|
||||||
|